On 29/5/26 12:30, Darrick J. Wong wrote:
On Thu, May 28, 2026 at 12:05:35PM +0800, Anand Jain wrote:
Add a helper to check if the target filesystem supports unique f_fsid
tracking across cloned or snapshot instances.

Certain filesystems like XFS, Btrfs, and F2FS ensure unique f_fsid
identifiers per filesystem instance. However, Ext4 derives its f_fsid
directly from its superblock UUID, which leads to identical f_fsid
values on cloned images until the UUID is manually modified by userspace.

Introduce _require_unique_f_fsid() to allow test cases requiring strict
f_fsid uniqueness to skip gracefully on unsupported filesystems.

Signed-off-by: Anand Jain <[email protected]>
---
 common/rc | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/common/rc b/common/rc
index 937f478963b4..5446552aed92 100644
--- a/common/rc
+++ b/common/rc
@@ -6314,6 +6314,27 @@ _require_fanotify_ioerrors()
        _notrun "$FSTYP does not support fanotify ioerrors"
 }
+# Ext4 derives f_fsid from the superblock UUID, meaning clones share the
+# same f_fsid until their UUIDs diverge. Conversely, XFS, Btrfs,
+# and F2FS ensure f_fsid remains unique per filesystem instance (often by
+# deriving it from the UUID and underlying block device.)
+#
+# Across all filesystems, a UUID collision causes libblkid tools to return
+# non-deterministic device mappings. It is ultimately the responsibility

"device mappings", as in /dev/disk/by-id/$UUID ?


Correct.. I'll make it specific.

+# of the userspace utility or use-case to enforce uniqueness when a clone
+# diverges. For details, see mailing list thread discussions titled:
+#      "ext4: derive f_fsid from block device to avoid collisions".

How about providing a direct lore link?


Sure, that will be..

Link:
https://lore.kernel.org/linux-ext4/[email protected]/

instead of the title.

Thanks, Anand


--D





+_require_unique_f_fsid()
+{
+       # Skip the test if the filesystem does not enforce unique f_fsids
+       # natively. Checking this dynamically requires recreating a clone
+       # layout, so we use a static lookup based on FSTYP.
+       if [ "$FSTYP" == "ext4" ]; then
+               _notrun "Target filesystem ($FSTYP) does not guarantee unique f_fsid 
on clones."
+       fi
+}
+
+
 # Computes a percentage of the available space in a filesystem and
 # returns that quantity in MB. The percentage must not contain a percent
 # sign ("%").
--
2.43.0





_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to