From: Al Viro <viro@zeniv.linux.org.uk>
To: Miklos Szeredi <miklos@szeredi.hu>
Cc: NeilBrown <neilb@suse.de>, Miklos Szeredi <mszeredi@redhat.com>,
Xavier Roche <xavier.roche@algolia.com>,
linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH RFC] VFS: lock source directory for link to avoid rename race.
Date: Fri, 16 Sep 2022 07:49:38 +0100 [thread overview]
Message-ID: <YyQcgqVUT89LL7M8@ZenIV> (raw)
In-Reply-To: <CAJfpeguwtADz8D1eUp4JVY-7-WKcf8giiiyvvdv4jccGtxcJKw@mail.gmail.com>
On Fri, Sep 16, 2022 at 08:28:06AM +0200, Miklos Szeredi wrote:
> This will break AT_SYMLINK_FOLLOW.
Right you are.
> And yes, we can add all the lookup logic to do_linkat() at which point
> it will about 10x more complex than it was.
Especially since you can't reject an apparent cross-fs link until you'v
looked the fucker up, since it just might be a symlink to be followed.
Which means it would have to be something like
find parents
again:
if on different mounts
if !follow
fuck off
lock old parent
look the last component up
if not an existing symlink
fuck off
unlock the parent and try to follow that symlink
goto again
lock parents
look the last components up
if symlink to be followed
unlock parents
try to follow symlink
goto again
proceed
Not exactly fatal, but...
next prev parent reply other threads:[~2022-09-16 6:49 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-21 8:20 [PATCH v2] vfs: fix link vs. rename race Miklos Szeredi
2022-02-21 8:56 ` Xavier Roche
2022-09-13 2:04 ` Al Viro
2022-09-13 4:29 ` Al Viro
2022-09-13 8:02 ` Amir Goldstein
2022-09-13 10:03 ` Miklos Szeredi
2022-09-13 4:41 ` NeilBrown
2022-09-13 5:20 ` Al Viro
2022-09-13 5:40 ` Al Viro
2022-09-14 0:14 ` NeilBrown
2022-09-14 1:30 ` Al Viro
2022-09-13 23:52 ` NeilBrown
2022-09-14 0:13 ` Al Viro
2022-09-16 6:13 ` [PATCH RFC] VFS: lock source directory for link to avoid " NeilBrown
2022-09-16 6:28 ` Miklos Szeredi
2022-09-16 6:45 ` NeilBrown
2022-09-16 6:49 ` Al Viro [this message]
2022-09-16 14:32 ` Amir Goldstein
2022-09-19 8:28 ` Christian Brauner
2022-09-19 22:56 ` NeilBrown
2022-09-23 3:02 ` [VFS] 3fb4ec6faa: ltp.linkat02.fail kernel test robot
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=YyQcgqVUT89LL7M8@ZenIV \
--to=viro@zeniv.linux.org.uk \
--cc=linux-fsdevel@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=mszeredi@redhat.com \
--cc=neilb@suse.de \
--cc=xavier.roche@algolia.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;
as well as URLs for NNTP newsgroup(s).