From: Christian Schoenebeck <linux_oss@crudebyte.com>
To: Tingmao Wang <m@maowtm.org>, Dominique Martinet <asmadeus@codewreck.org>
Cc: "Mickaël Salaün" <mic@digikod.net>,
"Eric Van Hensbergen" <ericvh@kernel.org>,
"Latchesar Ionkov" <lucho@ionkov.net>,
v9fs@lists.linux.dev, "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>,
"Al Viro" <viro@zeniv.linux.org.uk>,
"Christian Brauner" <brauner@kernel.org>,
linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH v2 0/7] fs/9p: Reuse inode based on path (in addition to qid)
Date: Mon, 15 Sep 2025 16:10:07 +0200 [thread overview]
Message-ID: <14530343.U1M6xoFM3Z@silver> (raw)
In-Reply-To: <aMgMOnrAOrwQyVbp@codewreck.org>
On Monday, September 15, 2025 2:53:14 PM CEST Dominique Martinet wrote:
[...]
> > 1. The qid is 9pfs internal data, and we may need extra API for 9pfs to
> >
> > expose this to Landlock. On 64bit, this is easy as it's just the inode
> > number (offset by 2), which we can already get from the struct inode.
> > But perhaps on 32bit we need a way to expose the full 64bit server-sent
> > qid to Landlock (or other kernel subsystems), if we're going to do
> > this.
>
> I'm not sure how much effort we want to spend on 32bit: as far as I
> know, if we have inode number collision on 32 bit we're already in
> trouble (tools like tar will consider such files to be hardlink of each
> other and happily skip reading data, producing corrupted archives);
> this is not a happy state but I don't know how to do better in any
> reasonable way, so we can probably keep a similar limitation for 32bit
> and use inode number directly...
I agree, on 32-bit the game is lost.
One way that would come to my mind though: exposing the full qid path as xattr
on 32-bit, e.g. via "system.9pfs_qid" or something like that.
> > 2. Even though qids are supposed to be unique across the lifetime of a
> >
> > filesystem (including deleted files), this is not the case even for
> > QEMU in multidevs=remap mode, when running on ext4, as tested on QEMU
> > 10.1.0.
>
> I'm not familiar with the qid remap implementation in qemu, but I'm
> curious in what case you hit that.
> Deleting and recreating files? Or as you seem to say below the 'qid' is
> "freed" when fd is closed qemu-side and re-used by later open of other
> files?
The inode remap algorithm in QEMU's 9p server was designed to prevent inode
number collisions of equally numbered inodes of *different* *devices* on host,
exposed to guest via the same 9p mount (which appears as only one 9pfs device
on guest). Basis for this however is still the underlying filesystem's inode
number on host.
So yes, ext4 re-uses inode numbers of deleted files, and when that happens, a
new file appears with the same qid path as the previously deleted file with
QEMU.
/Christian
next prev parent reply other threads:[~2025-09-15 14:50 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-04 0:04 [PATCH v2 0/7] fs/9p: Reuse inode based on path (in addition to qid) Tingmao Wang
2025-09-04 0:04 ` [PATCH v2 1/7] fs/9p: Add ability to identify inode by path for .L in uncached mode Tingmao Wang
2025-09-04 0:04 ` [PATCH v2 2/7] fs/9p: add option for path-based inodes Tingmao Wang
2025-09-04 0:04 ` [PATCH v2 3/7] fs/9p: Add ability to identify inode by path for non-.L in uncached mode Tingmao Wang
2025-09-04 0:04 ` [PATCH v2 4/7] fs/9p: .L: Refresh stale inodes on reuse Tingmao Wang
2025-09-04 0:04 ` [PATCH v2 5/7] fs/9p: non-.L: " Tingmao Wang
2025-09-04 0:04 ` [PATCH v2 6/7] fs/9p: update the target's ino_path on rename Tingmao Wang
2025-09-04 0:04 ` [PATCH v2 7/7] docs: fs/9p: Document the "inodeident" option Tingmao Wang
2025-09-14 21:25 ` [PATCH v2 0/7] fs/9p: Reuse inode based on path (in addition to qid) Tingmao Wang
2025-09-15 12:53 ` Dominique Martinet
2025-09-15 13:44 ` Tingmao Wang
2025-09-15 23:31 ` Dominique Martinet
2025-09-16 12:44 ` Tingmao Wang
2025-09-16 13:35 ` Dominique Martinet
2025-09-16 14:01 ` Tingmao Wang
2025-09-16 19:22 ` Christian Schoenebeck
2025-09-16 23:59 ` Tingmao Wang
2025-09-17 9:52 ` Christian Schoenebeck
2025-09-17 15:00 ` Mickaël Salaün
2025-09-21 16:24 ` Tingmao Wang
2025-09-27 18:27 ` Mickaël Salaün
2025-09-27 22:53 ` Tingmao Wang
2025-09-29 13:06 ` Christian Schoenebeck
2025-10-13 9:24 ` Greg Kurz
2025-09-16 13:43 ` Christian Schoenebeck
2025-09-15 14:10 ` Christian Schoenebeck [this message]
2025-09-17 15:00 ` Mickaël Salaün
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=14530343.U1M6xoFM3Z@silver \
--to=linux_oss@crudebyte.com \
--cc=amir73il@gmail.com \
--cc=asmadeus@codewreck.org \
--cc=brauner@kernel.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=lucho@ionkov.net \
--cc=m@maowtm.org \
--cc=mic@digikod.net \
--cc=repnop@google.com \
--cc=v9fs@lists.linux.dev \
--cc=viro@zeniv.linux.org.uk \
/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).