One other thing I should mention is that some of the code paths introduced here could also apply to Unix sockets, which also can't have a unix_fd. We could again use O_PATH in that case, but presumably then we *cannot* use O_SYMLINK, so on Mac there would be no way to delete an AF_UNIX socket once created.