From: "Theodore Tso" <tytso@mit.edu>
To: Anand Jain <anajain.sg@gmail.com>
Cc: Christoph Hellwig <hch@infradead.org>,
"Darrick J. Wong" <djwong@kernel.org>,
linux-ext4@vger.kernel.org, linux-btrfs@vger.kernel.org,
linux-xfs@vger.kernel.org, Anand Jain <asj@kernel.org>
Subject: Re: [PATCH v2 3/3] ext4: derive f_fsid from block device to avoid collisions
Date: Thu, 9 Apr 2026 00:10:35 -0400 [thread overview]
Message-ID: <20260409041035.GC99725@macsyma-wired.lan> (raw)
In-Reply-To: <3c9e478a-42ef-446f-a8cc-1b4ac970d2ef@gmail.com>
On Thu, Apr 09, 2026 at 06:28:32AM +0800, Anand Jain wrote:
> Some A/B testing use cases require the filesystem to remain
> byte-for-byte identical. In those scenarios, changing the UUID
> isn't an option.
But in that case, where the file systems A and B are bit-fot-bit
identical, why do we care whether statfs returns different fsid's for
statfs(A) and statfs(B). After all, f_fsid is only defined as "File
system ID", and there is no other definition. Which is why I say that
people *really* shouldn't depending on its semantics, because it's not
well defined.
Quoting from the statfs(2) man page:
Nobody knows what f_fsid is supposed to contain (but see below).
...
The general idea is that f_fsid contains some random stuff such
that the pair (f_fsid,ino) uniquely determines a file. Some
operating systems use (a variation on) the device number, or the
device number combined with the filesystem type. Several operating
systems restrict giving out the f_fsid field to the superuser only
(and zero it for unprivileged users), because this field is used
in the filehandle of the filesystem when NFS-exported, and giving
it out is a security concern.
So if the two file systems are identical, the (f_fsid, ino) will
uniquely determines a file. And that's *fine* if f_fsid is the same
for statfs(A) and statfs(B).
No?
- Ted
next prev parent reply other threads:[~2026-04-09 4:11 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-21 11:55 [PATCH v2 0/3] fix s_uuid and f_fsid consistency for cloned filesystems Anand Jain
2026-03-21 11:55 ` [PATCH v2 1/3] btrfs: use on-disk uuid for s_uuid in temp_fsid mounts Anand Jain
2026-03-21 11:55 ` [PATCH v2 2/3] btrfs: derive f_fsid from on-disk fsuuid and dev_t Anand Jain
2026-03-21 11:55 ` [PATCH v2 3/3] ext4: derive f_fsid from block device to avoid collisions Anand Jain
2026-03-23 4:16 ` Theodore Tso
2026-03-23 15:29 ` Darrick J. Wong
2026-03-23 16:44 ` Darrick J. Wong
2026-03-25 10:02 ` Andreas Dilger
2026-03-25 10:59 ` Anand Jain
2026-03-25 12:59 ` Theodore Tso
2026-04-02 7:33 ` Anand Jain
2026-03-23 15:41 ` Anand Jain
2026-04-04 8:59 ` Anand Jain
2026-04-07 5:22 ` Christoph Hellwig
2026-04-07 14:47 ` Theodore Tso
2026-04-08 22:28 ` Anand Jain
2026-04-09 4:10 ` Theodore Tso [this message]
2026-04-09 9:45 ` Anand Jain
2026-04-09 13:12 ` Theodore Tso
2026-04-16 15:21 ` Anand Jain
2026-04-17 7:34 ` Christoph Hellwig
2026-04-22 11:39 ` Anand Jain
2026-04-23 5:08 ` Christoph Hellwig
2026-04-27 10:16 ` Anand Jain
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=20260409041035.GC99725@macsyma-wired.lan \
--to=tytso@mit.edu \
--cc=anajain.sg@gmail.com \
--cc=asj@kernel.org \
--cc=djwong@kernel.org \
--cc=hch@infradead.org \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.