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 ?
> +# 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?
--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