public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Qu Wenruo <wqu@suse.com>
Cc: "Christoph Hellwig" <hch@lst.de>,
	"André Almeida" <andrealmeid@igalia.com>,
	"Chuck Lever" <chuck.lever@oracle.com>,
	"Jeff Layton" <jlayton@kernel.org>, NeilBrown <neil@brown.name>,
	"Olga Kornievskaia" <okorniev@redhat.com>,
	"Dai Ngo" <Dai.Ngo@oracle.com>, "Tom Talpey" <tom@talpey.com>,
	"Carlos Maiolino" <cem@kernel.org>,
	"Amir Goldstein" <amir73il@gmail.com>, "Chris Mason" <clm@fb.com>,
	"David Sterba" <dsterba@suse.com>,
	"Miklos Szeredi" <miklos@szeredi.hu>,
	"Christian Brauner" <brauner@kernel.org>,
	"Alexander Viro" <viro@zeniv.linux.org.uk>,
	"Jan Kara" <jack@suse.cz>,
	linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	linux-btrfs@vger.kernel.org, linux-unionfs@vger.kernel.org,
	kernel-dev@igalia.com
Subject: Re: [PATCH 3/3] ovl: Use real disk UUID for origin file handles
Date: Thu, 15 Jan 2026 08:23:12 +0100	[thread overview]
Message-ID: <20260115072311.GA10352@lst.de> (raw)
In-Reply-To: <633bb5f3-4582-416c-b8b9-fd1f3b3452ab@suse.com>

On Thu, Jan 15, 2026 at 05:21:04PM +1030, Qu Wenruo wrote:
> So that means let btrfs to convert the temp fsid into metadata uuid, which 
> I think is fine.

At least in XFS terms, that metadata uuid is the persistent, never
changing uuid in the metadata headrs.

> But the problem is that will change the fsid of the new fs, which may or 
> may not be what's expected for the current temp fsid user (they really want 
> two btrfs with the same fsid).

Which is really dangerous and should not be used in normal operation.
For XFS with support it with a nouuid option, mostly for historic
reasons and to be able to change the uuid transactional using an
ioctl.

> My initial idea for this problem is to let btrfs not generate a tempfsid 
> automatically, but put some special flag (e.g. SINGLE_DEV compat ro flag) 
> on those fses that want duplicated fsid.
>
> Then for those SINGLE_DEV fses, disable any multi-device related features, 
> and use their dev_t to distinguish different fses just like EXT4/XFS, 
> without bothering the current tempfsid hack, and just return the same fsid.

dev_t is not related to the uuid in any way for XFS, and while I'm not
an expert there I'm pretty sure ext4 uses the same not dev related uuid
generation.

> I'm wondering will that behavior (returning the same fsid) be acceptable 
> for overlayfs?

I still wonder what the use case is here.  Looking at André's original
mail it states:

"However, btrfs mounts may have volatiles UUIDs. When mounting the exact same
disk image with btrfs, a random UUID is assigned for the following disks each
time they are mounted, stored at temp_fsid and used across the kernel as the
disk UUID. `btrfs filesystem show` presents that. Calling statfs() however
shows the original (and duplicated) UUID for all disks."

and this doesn't even talk about multiple mounts, but looking at
device_list_add it seems to only set the temp_fsid flag when set
same_fsid_diff_dev is set by find_fsid_by_device, which isn't documented
well, but does indeed seem to be done transparently when two file systems
with the same fsid are mounted.

So André, can you confirm this what you're worried about?  And btrfs
developers, I think the main problem is indeed that btrfs simply allows
mounting the same fsid twice.  Which is really fatal for anything using
the fsid/uuid, such NFS exports, mount by fs uuid or any sb->s_uuid user.

> If so, I think it's time to revert the behavior before it's too late.
> Currently the main usage of such duplicated fsids is for Steam deck to 
> maintain A/B partitions, I think they can accept a new compat_ro flag for 
> that.

What's an A/B partition?  And how are these safely used at the same time?


  reply	other threads:[~2026-01-15  7:23 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-14  4:31 [PATCH 0/3] fs: Support btrfs cloned images and overlayfs André Almeida
2026-01-14  4:31 ` [PATCH 1/3] exportfs: Rename get_uuid() to get_disk_uuid() André Almeida
2026-01-14  6:10   ` Darrick J. Wong
2026-01-14  6:24     ` Christoph Hellwig
2026-01-14 10:12       ` Amir Goldstein
2026-01-14 13:11         ` Christoph Hellwig
2026-01-14 16:38         ` André Almeida
2026-01-14 17:58           ` Amir Goldstein
2026-01-14  4:31 ` [PATCH 2/3] btrfs: Implement get_disk_uuid() André Almeida
2026-01-14  4:31 ` [PATCH 3/3] ovl: Use real disk UUID for origin file handles André Almeida
2026-01-14  6:26   ` Christoph Hellwig
2026-01-14 16:17     ` André Almeida
2026-01-15  6:29       ` Christoph Hellwig
2026-01-15  6:51         ` Qu Wenruo
2026-01-15  7:23           ` Christoph Hellwig [this message]
2026-01-15  8:09             ` Qu Wenruo
2026-01-15  8:31               ` Christoph Hellwig
2026-01-15 15:42             ` André Almeida
2026-01-15 16:07               ` Amir Goldstein
2026-01-15 18:55                 ` André Almeida
2026-01-16  9:36                   ` Christoph Hellwig
2026-01-16  9:55                   ` Amir Goldstein
2026-01-16 13:27                     ` André Almeida
2026-01-16 17:06                       ` Amir Goldstein
2026-01-19 16:56                         ` André Almeida
2026-01-20 15:12                           ` Amir Goldstein
2026-01-22 20:07                             ` Amir Goldstein
2026-01-23 13:24                               ` André Almeida
2026-01-23 20:08                                 ` André Almeida
2026-01-24 10:45                                   ` Amir Goldstein
2026-01-28 11:49                                     ` Amir Goldstein
2026-02-05 20:34                                       ` André Almeida
2026-02-06 13:12                                         ` Amir Goldstein
2026-02-16 14:59                                           ` André Almeida
2026-02-17 13:26                                             ` Amir Goldstein
2026-01-15 16:08               ` Christoph Hellwig
2026-01-14 17:54   ` Amir Goldstein
2026-01-15  6:36     ` Christoph Hellwig

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=20260115072311.GA10352@lst.de \
    --to=hch@lst.de \
    --cc=Dai.Ngo@oracle.com \
    --cc=amir73il@gmail.com \
    --cc=andrealmeid@igalia.com \
    --cc=brauner@kernel.org \
    --cc=cem@kernel.org \
    --cc=chuck.lever@oracle.com \
    --cc=clm@fb.com \
    --cc=dsterba@suse.com \
    --cc=jack@suse.cz \
    --cc=jlayton@kernel.org \
    --cc=kernel-dev@igalia.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=linux-unionfs@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    --cc=neil@brown.name \
    --cc=okorniev@redhat.com \
    --cc=tom@talpey.com \
    --cc=viro@zeniv.linux.org.uk \
    --cc=wqu@suse.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