[PATCH 0/9] fstests: add test coverage for cloned filesystem ids

Anand Jain
2026-02-26T14:42:01Z

This series adds fstests infrastructure and test cases to verify correct
filesystem identity behaviour when a filesystem is cloned (e.g. via
block-level copy), covering inotify, fanotify, f_fsid, libblkid, IMA,
and exportfs file handles.

- SCRATCH_DEV_POOL support extended to non-Btrfs filesystems
- _mkfs_scratch_sized_clone() helper to create a cloned filesystem
- _clone_mount_option() helper to apply per-filesystem clone mount options

New tests verify:
- inotify and fanotify events are isolated between cloned filesystems
- f_fsid is unique across cloned filesystem instances
- libblkid correctly resolves duplicate UUIDs to distinct devices
- IMA distinct identity for each cloned filesystem
- exportfs file handles resolve correctly on cloned filesystems

Testing:
Requires kernel patches [1] for all tests to pass.
[1] https://lore.kernel.org/linux-btrfs/cover.1772095546.git.asj@kernel.org/

Anand Jain (9):
fstests: allow SCRATCH_DEV_POOL for non-Btrfs filesystems
fstests: add _mkfs_scratch_clone() helper
fstests: add _clone_mount_option() helper
fstests: add test for inotify isolation on cloned devices
fstests: verify fanotify isolation on cloned filesystems
fstests: verify f_fsid for cloned filesystems
fstests: verify libblkid resolution of duplicate UUIDs
fstests: verify IMA isolation on cloned filesystems
fstests: verify exportfs file handles on cloned filesystems

.gitignore | 1 +
common/config | 1 +
common/rc | 55 ++++++++++++++++++-----
src/Makefile | 2 +-
src/fanotify.c | 66 +++++++++++++++++++++++++++
tests/generic/790 | 78 ++++++++++++++++++++++++++++++++
tests/generic/790.out | 7 +++
tests/generic/791 | 86 +++++++++++++++++++++++++++++++++++
tests/generic/791.out | 7 +++
tests/generic/792 | 57 ++++++++++++++++++++++++
tests/generic/792.out | 7 +++
tests/generic/793 | 73 ++++++++++++++++++++++++++++++
tests/generic/793.out | 22 +++++++++
tests/generic/794 | 101 ++++++++++++++++++++++++++++++++++++++++++
tests/generic/794.out | 10 +++++
tests/generic/795 | 67 ++++++++++++++++++++++++++++
tests/generic/795.out | 2 +
17 files changed, 629 insertions(+), 13 deletions(-)
create mode 100644 src/fanotify.c
create mode 100644 tests/generic/790
create mode 100644 tests/generic/790.out
create mode 100644 tests/generic/791
create mode 100644 tests/generic/791.out
create mode 100644 tests/generic/792
create mode 100644 tests/generic/792.out
create mode 100644 tests/generic/793
create mode 100644 tests/generic/793.out
create mode 100644 tests/generic/794
create mode 100644 tests/generic/794.out
create mode 100644 tests/generic/795
create mode 100644 tests/generic/795.out

--
2.43.0