Jinoh Kang (@iamahuman) commented about server/fd.c:
file_set_error();unlinkat( dirfd, tmpname, 0 );goto ret;}break;}/* directories can't have hardlinks, so just rename it to tmpname */if (!renameat( dirfd, srcname, dirfd, tmpname ))break;if (errno != EEXIST && errno != ENOTDIR && errno != ENOTEMPTY){file_set_error();goto ret;}
To elaborate on my suggestion (untested):
```suggestion:-6+0 if (mkdirat( dirfd, tmpname, 0777 )) { if (errno == EEXIST) continue; file_set_error(); goto ret; }
if (renameat( dirfd, srcname, dirfd, tmpname )) { file_set_error(); unlinkat( dirfd, tmpname, AT_REMOVEDIR ); goto ret; }
break; ```