[patch] link.2: ERRORS: add ENOENT when target is deleted

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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>
---
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

 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).
+.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
-- 
2.27.0




[Index of Archives]     [Kernel Documentation]     [Netdev]     [Linux Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux