From: "Michael Kerrisk (man-pages)" <mtk.manpages@gmail.com>
To: "Alejandro Colomar (man-pages)" <alx.manpages@gmail.com>,
Mathias Rav <m@git.strova.dk>
Cc: mtk.manpages@gmail.com, linux-man@vger.kernel.org,
Mathias Rav <mathias@scalgo.com>
Subject: Re: [patch] link.2: ERRORS: add ENOENT when target is deleted
Date: Thu, 26 Nov 2020 13:53:18 +0100 [thread overview]
Message-ID: <5598aa4b-cb11-302b-6215-eb664c64055f@gmail.com> (raw)
In-Reply-To: <a91363d4-8f46-401a-e214-e93ada9f71aa@gmail.com>
On 11/26/20 1:36 PM, Alejandro Colomar (man-pages) wrote:
> Hi Mathias & Michael,
>
> Please, see a fix below.
Thanks, Alex. Fixed!
Cheers,
Michael
> 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@git.strova.dk>
>>
>> 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
>>>
>>
>>
--
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/
prev parent reply other threads:[~2020-11-26 12:53 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-25 13:27 [patch] link.2: ERRORS: add ENOENT when target is deleted Mathias Rav
2020-11-26 10:00 ` Michael Kerrisk (man-pages)
2020-11-26 12:36 ` Alejandro Colomar (man-pages)
2020-11-26 12:53 ` Michael Kerrisk (man-pages) [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5598aa4b-cb11-302b-6215-eb664c64055f@gmail.com \
--to=mtk.manpages@gmail.com \
--cc=alx.manpages@gmail.com \
--cc=linux-man@vger.kernel.org \
--cc=m@git.strova.dk \
--cc=mathias@scalgo.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox