Hi Mathias & Michael, Please, see a fix below. Cheers, Alex On 11/26/20 11:00 AM, Michael Kerrisk (man-pages) wrote: > On 11/25/20 2:27 PM, Mathias Rav wrote: >> Linux kernel commit aae8a97d3ec30788790d1720b71d76fd8eb44b73 >> (part of kernel release v2.6.39) added a check to disallow creating a >> hardlink to an unlinked file. >> >> Signed-off-by: Mathias Rav <m@xxxxxxxxxxxxx> > > Thanks, Matthias. Patch applied. > >> --- >> The manual page already describes the trick of using AT_SYMLINK_FOLLOW >> as an alternative to AT_EMPTY_PATH, and for AT_EMPTY_PATH the manual >> page already notes that it "will generally not work if the file has a >> link count of zero". However, the precise error (ENOENT) is not mentioned, >> and the error case isn't mentioned in the ERRORS section at all. >> >> This makes it easy to overlook the fact that the AT_SYMLINK_FOLLOW >> trick on /proc/self/fd/NN won't work on deleted files, as evidenced by >> the follow message (which turns up when googling "linkat deleted ENOENT"): >> https://groups.google.com/g/linux.kernel/c/zZO4lqqwp64 > > I think the above piece is actually worth including in the > commit message, so I added it. > > Thanks, > > Michael > >> man2/link.2 | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/man2/link.2 b/man2/link.2 >> index 1e7b2efd8..202119c6e 100644 >> --- a/man2/link.2 >> +++ b/man2/link.2 >> @@ -318,6 +318,10 @@ open(path, O_TMPFILE | O_EXCL, mode); >> .IP >> See >> .BR open (2). +.TP >> +.B ENOENT >> +An attempt was made to link to a >> +.I /proc/self/fd/NN >> +file corresponding to a file that has been deleted. >> .TP >> .B ENOENT >> .I oldpath >> > >