Skip to content

fstests: add test coverage for cloned filesystem ids

Anand Jain fstests linux-btrfs linux-ext4 linux-f2fs-devel linux-xfs 8 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v8 Latest13 patches 28 repliesIn review
  2. v711 patches 11 repliesSuperseded
  3. v611 patches 12 repliesSuperseded
Earlier versions · 5
VersionPostedPatchesRepliesStatus
v510 patches16 repliesSuperseded
v49 patches6 repliesSuperseded
v39 patches4 repliesSuperseded
v29 patches0 repliesSuperseded
v19 patches9 repliesSuperseded

Changes in v8 from the cover letter

- _require_fs_space: double the required space (x2) to account for both source and clone
- Use proper quoting/unquoting for _mkfs_dev (Thanks Darrick)
- Call _fail() if cp fails
- _require_fanotify_function: check for kernel fsnotify support
- _require_unique_f_fsid: reorganize comments and replace 'if' with 'case' statement (Thanks Darrick)
- Add SEMANAGE_PROG variable (Thanks Darrick)
- fanotify verification: add checks for SEMANAGE_PROG and _require_fanotify_function
- Verify that the monitoring process is actually created

Patches in v8 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/13fstests: add _loop_image_create_clone() helpercommon/rc+65 -02 replies
2/13fstests: add _clone_mount_option() helpercommon/rc+13 -02 replies
3/13fstests: add FSNOTIFYWAIT_PROGcommon/config+1 -01 reply
4/13fstests: add _require_fanotify_functioncommon/rc+7 -02 replies
5/13fstests: add _require_unique_f_fsid() helpercommon/rc+27 -02 replies
6/13fstests: add SEMANAGE_PROGcommon/config+1 -00 replies
7/13fstests: verify fanotify isolation on cloned filesystemstests/generic/801 tests/generic/801.out+150 -02 replies
8/13fstests: verify f_fsid for cloned filesystemstests/generic/802 tests/generic/802.out+68 -02 replies
9/13fstests: verify libblkid resolution of duplicate UUIDstests/generic/803 tests/generic/803.out+78 -02 replies
10/13fstests: verify IMA isolation on cloned filesystemstests/generic/804 tests/generic/804.out+118 -02 replies
11/13fstests: verify exportfs file handles on cloned filesystemstests/generic/805 tests/generic/805.out+82 -03 replies
12/13fstests: add _change_metadata_uuid helpercommon/rc+23 -02 replies
13/13fstests: test UUID consistency for clones with metadata_uuidtests/generic/806 tests/generic/806.out+80 -04 replies

Reviews trailers per patch

2 of 13 patches have a Reviewed-by or Acked-by.

PatchDarrick J. WongZorro Lang
1/13
2/13R-b
3/13R-b R-b
4/13
5/13
6/13
7/13
8/13
9/13
10/13
11/13
12/13
13/13

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v8 thread

Cover letter [PATCH v8 0/13] fstests: add test coverage for cloned filesystem ids

v8:
- _require_fs_space: double the required space (x2) to account for both source and clone
- Use proper quoting/unquoting for _mkfs_dev (Thanks Darrick)
- Call _fail() if cp fails
- _require_fanotify_function: check for kernel fsnotify support
- _require_unique_f_fsid: reorganize comments and replace 'if' with 'case' statement (Thanks Darrick)
- Add SEMANAGE_PROG variable (Thanks Darrick)
- fanotify verification: add checks for SEMANAGE_PROG and _require_fanotify_function
- Verify that the monitoring process is actually created

v7:
https://lore.kernel.org/fstests/[email protected]

v6:
https://lore.kernel.org/fstests/[email protected]

v5:
https://lore.kernel.org/fstests/[email protected]

v4:
https://lore.kernel.org/fstests/[email protected]

v3:
https://lore.kernel.org/fstests/[email protected]

v2:
https://lore.kernel.org/fstests/[email protected]

v1:
https://lore.kernel.org/fstests/[email protected]

This series adds fstests infrastructure and test cases to verify correct filesystem identity when a filesystem is cloned (block-level copy). Test covers inotify, fanotify, f_fsid, libblkid, IMA, exportfs file handles and libblkid tools verify with metadata_uuid.
New helpers:
_loop_image_create_clone() and _loop_image_destroy() to help create fs and clone _clone_mount_option() helper to apply per-filesystem clone mount options _require_fanotify_function check if kernel supports fs notification _require_unique_f_fsid() helper to handle fs difference in fsid implementation

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

Kernel Patches:
Requires Btrfs kernel patches for all tests to pass.
[1] https://lore.kernel.org/linux-btrfs/[email protected]

Anand Jain (13):
fstests: add _loop_image_create_clone() helper
fstests: add _clone_mount_option() helper
fstests: add FSNOTIFYWAIT_PROG
fstests: add _require_fanotify_function
fstests: add _require_unique_f_fsid() helper
fstests: add SEMANAGE_PROG
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
fstests: add _change_metadata_uuid helper
fstests: test UUID consistency for clones with metadata_uuid

 common/config         |   2 +
 common/rc             | 135 +++++++++++++++++++++++++++++++++++++++
 tests/generic/801     | 143 ++++++++++++++++++++++++++++++++++++++++++
 tests/generic/801.out |   7 +++
 tests/generic/802     |  64 +++++++++++++++++++
 tests/generic/802.out |   4 ++
 tests/generic/803     |  72 +++++++++++++++++++++
 tests/generic/803.out |   6 ++
 tests/generic/804     | 108 +++++++++++++++++++++++++++++++
 tests/generic/804.out |  10 +++
 tests/generic/805     |  80 +++++++++++++++++++++++
 tests/generic/805.out |   2 +
 tests/generic/806     |  74 ++++++++++++++++++++++
 tests/generic/806.out |   6 ++
 14 files changed, 713 insertions(+)
 create mode 100644 tests/generic/801
 create mode 100644 tests/generic/801.out
 create mode 100644 tests/generic/802
 create mode 100644 tests/generic/802.out
 create mode 100644 tests/generic/803
 create mode 100644 tests/generic/803.out
 create mode 100644 tests/generic/804
 create mode 100644 tests/generic/804.out
 create mode 100644 tests/generic/805
 create mode 100644 tests/generic/805.out
 create mode 100644 tests/generic/806
 create mode 100644 tests/generic/806.out
Signature · 1 line
2.43.0