Early versions of uv-unix saved errno in a lot of places but I kind of scaled back on that.  For uv__close(), it's mostly a convenience thing - it often gets called from error paths where the original errno needs to be preserved.  Dealing with that in uv__close() makes that easier.