From: Al Viro <viro@zeniv.linux.org.uk>
To: Tingmao Wang <m@maowtm.org>
Cc: "Eric Van Hensbergen" <ericvh@kernel.org>,
"Dominique Martinet" <asmadeus@codewreck.org>,
"Latchesar Ionkov" <lucho@ionkov.net>,
"Christian Schoenebeck" <linux_oss@crudebyte.com>,
v9fs@lists.linux.dev, "Mickaël Salaün" <mic@digikod.net>,
"Günther Noack" <gnoack@google.com>,
linux-security-module@vger.kernel.org, "Jan Kara" <jack@suse.cz>,
"Amir Goldstein" <amir73il@gmail.com>,
"Matthew Bobrowski" <repnop@google.com>,
linux-fsdevel@vger.kernel.org
Subject: Re: [RFC PATCH 1/6] fs/9p: Add ability to identify inode by path for .L
Date: Sat, 5 Jul 2025 01:25:36 +0100 [thread overview]
Message-ID: <20250705002536.GW1880847@ZenIV> (raw)
In-Reply-To: <e839a49e0673b12eb5a1ed2605a0a5267ff644db.1743971855.git.m@maowtm.org>
On Sun, Apr 06, 2025 at 09:43:02PM +0100, Tingmao Wang wrote:
> +bool ino_path_compare(struct v9fs_ino_path *ino_path,
> + struct dentry *dentry)
> +{
> + struct dentry *curr = dentry;
> + struct qstr *curr_name;
> + struct name_snapshot *compare;
> + ssize_t i;
> +
> + lockdep_assert_held_read(&v9fs_dentry2v9ses(dentry)->rename_sem);
> +
> + rcu_read_lock();
> + for (i = ino_path->nr_components - 1; i >= 0; i--) {
> + if (curr->d_parent == curr) {
> + /* We're supposed to have more components to walk */
> + rcu_read_unlock();
> + return false;
> + }
> + curr_name = &curr->d_name;
> + compare = &ino_path->names[i];
> + /*
> + * We can't use hash_len because it is salted with the parent
> + * dentry pointer. We could make this faster by pre-computing our
> + * own hashlen for compare and ino_path outside, probably.
> + */
> + if (curr_name->len != compare->name.len) {
> + rcu_read_unlock();
> + return false;
> + }
> + if (strncmp(curr_name->name, compare->name.name,
> + curr_name->len) != 0) {
... without any kind of protection for curr_name. Incidentally,
what about rename()? Not a cross-directory one, just one that
changes the name of a subdirectory within the same parent?
next prev parent reply other threads:[~2025-07-05 0:25 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-06 20:43 [RFC PATCH 0/6] fs/9p: Reuse inode based on path (in addition to qid) Tingmao Wang
2025-04-06 20:43 ` [RFC PATCH 1/6] fs/9p: Add ability to identify inode by path for .L Tingmao Wang
2025-07-05 0:19 ` Al Viro
2025-07-05 0:25 ` Al Viro [this message]
2025-07-11 19:11 ` Tingmao Wang
2025-08-08 8:32 ` Mickaël Salaün
2025-08-12 23:57 ` Tingmao Wang
2025-08-13 7:47 ` Mickaël Salaün
2025-07-11 19:11 ` Tingmao Wang
2025-04-06 20:43 ` [RFC PATCH 2/6] fs/9p: add default option for path-based inodes Tingmao Wang
2025-04-06 20:43 ` [RFC PATCH 3/6] fs/9p: Hide inodeident=path from show_options as it is the default Tingmao Wang
2025-04-06 20:43 ` [RFC PATCH 4/6] fs/9p: Add ability to identify inode by path for non-.L Tingmao Wang
2025-07-11 19:12 ` Tingmao Wang
2025-04-06 20:43 ` [RFC PATCH 5/6] fs/9p: .L: Refresh stale inodes on reuse Tingmao Wang
2025-04-06 20:43 ` [RFC PATCH 6/6] fs/9p: non-.L: " Tingmao Wang
2025-07-04 18:37 ` [RFC PATCH 0/6] fs/9p: Reuse inode based on path (in addition to qid) Mickaël Salaün
2025-08-08 10:27 ` Dominique Martinet
2025-08-08 10:52 ` Christian Schoenebeck
2025-08-12 23:53 ` Tingmao Wang
2025-08-13 5:30 ` Dominique Martinet
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=20250705002536.GW1880847@ZenIV \
--to=viro@zeniv.linux.org.uk \
--cc=amir73il@gmail.com \
--cc=asmadeus@codewreck.org \
--cc=ericvh@kernel.org \
--cc=gnoack@google.com \
--cc=jack@suse.cz \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=linux_oss@crudebyte.com \
--cc=lucho@ionkov.net \
--cc=m@maowtm.org \
--cc=mic@digikod.net \
--cc=repnop@google.com \
--cc=v9fs@lists.linux.dev \
/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).