From: "Christian Brauner (Microsoft)" <brauner@xxxxxxxxxx> Hey everyone, Please note that this patch series contains patches that will be rejected by the fstests mailing list because of the amount of changes they contain. So tools like b4 will not be able to find the whole patch series on a mailing list. In case it's helpful I've added the "fstests.vfstest.for-next" tag which can be pulled. Otherwise it's possible to simply use the patch series as it appears in your inbox. All vfstests pass: #### btrfs #### ubuntu@imp1-vm:~/src/git/xfstests$ sudo ./check -g idmapped FSTYP -- btrfs PLATFORM -- Linux/x86_64 imp1-vm 5.18.0-rc4-fs-mnt-hold-writers-8a2e2350494f #107 SMP PREEMPT_DYNAMIC Mon May 9 12:12:34 UTC 2022 MKFS_OPTIONS -- /dev/sda4 MOUNT_OPTIONS -- /dev/sda4 /mnt/scratch btrfs/245 52s ... 54s generic/633 58s ... 51s generic/644 60s ... 49s generic/645 161s ... 143s generic/656 63s ... 55s Ran: btrfs/245 generic/633 generic/644 generic/645 generic/656 Passed all 5 tests #### ext4 #### ubuntu@imp1-vm:~/src/git/xfstests$ sudo ./check -g idmapped FSTYP -- ext4 PLATFORM -- Linux/x86_64 imp1-vm 5.18.0-rc4-fs-mnt-hold-writers-8a2e2350494f #107 SMP PREEMPT_DYNAMIC Mon May 9 12:12:34 UTC 2022 MKFS_OPTIONS -- /dev/sda4 MOUNT_OPTIONS -- -o acl,user_xattr /dev/sda4 /mnt/scratch generic/633 47s ... 50s generic/644 46s ... 49s generic/645 135s ... 139s generic/656 53s ... 54s Ran: generic/633 generic/644 generic/645 generic/656 Passed all 4 tests #### xfs #### ubuntu@imp1-vm:~/src/git/xfstests$ sudo ./check -g idmapped FSTYP -- xfs (debug) PLATFORM -- Linux/x86_64 imp1-vm 5.18.0-rc4-fs-mnt-hold-writers-8a2e2350494f #107 SMP PREEMPT_DYNAMIC Mon May 9 12:12:34 UTC 2022 MKFS_OPTIONS -- -f /dev/sda4 MOUNT_OPTIONS -- /dev/sda4 /mnt/scratch generic/633 58s ... 58s generic/644 62s ... 60s generic/645 161s ... 161s generic/656 62s ... 63s xfs/152 133s ... 133s xfs/153 94s ... 92s Ran: generic/633 generic/644 generic/645 generic/656 xfs/152 xfs/153 Passed all 6 tests /* v2 */ * This rebases the patchset on top the for-next branch. * Last week we merged 858a19c5e9b0 ("idmapped_mounts: Prepare for support for more features"). The patch switched feature checking from a boolean to a flag. It failed convert all tests. This adds a patch to fix this in patch 01/13. * A patch has been added to remove an invalid test. The semantics for a specific corner-case where we allowed a mount's idmapping to change while there were active writers will be altered. /* v1 */ As announced multiple times already we need to rename and split the idmapped mount testsuite into separate source files and also give it a better name to reflect the fact that it covers a lot more than just idmapped mounts. I have decided against compiling different binaries for now. Instead we compile a single vfstest binary that can be called with various command line switches to run the various test suites. This is not different than what we did for the idmapped-mounts binary. Of course, nothing prevents us from using multiple binaries in the future. Thanks! Christian Christian Brauner (13): idmapped-mounts: make all tests set their required feature flags src: rename idmapped-mounts folder src/vfs: rename idmapped-mounts.c file vfstest: rename struct t_idmapped_mounts utils: add missing global.h include utils: add struct vfstest_info utils: move helpers into utils missing: move sys_execveat() to missing.h utils: add struct test_suite vfstests: split idmapped mount tests into separate suite vfstest: split out btrfs idmapped mounts test vfstest: split out remaining idmapped mount tests vfs/idmapped-mounts: remove invalid test .gitignore | 4 +- common/rc | 32 +- src/Makefile | 2 +- src/detached_mounts_propagation.c | 2 +- src/feature.c | 2 +- src/idmapped-mounts/idmapped-mounts.c | 14625 ---------------- src/idmapped-mounts/utils.c | 425 - src/idmapped-mounts/utils.h | 130 - src/{idmapped-mounts => vfs}/Makefile | 14 +- src/vfs/btrfs-idmapped-mounts.c | 3854 ++++ src/vfs/btrfs-idmapped-mounts.h | 15 + src/vfs/idmapped-mounts.c | 7747 ++++++++ src/vfs/idmapped-mounts.h | 18 + src/{idmapped-mounts => vfs}/missing.h | 11 + src/{idmapped-mounts => vfs}/mount-idmapped.c | 0 src/vfs/utils.c | 1050 ++ src/vfs/utils.h | 373 + src/vfs/vfstest.c | 2073 +++ tests/btrfs/245 | 2 +- tests/generic/633 | 2 +- tests/generic/644 | 2 +- tests/generic/645 | 2 +- tests/generic/656 | 2 +- tests/xfs/152 | 4 +- tests/xfs/153 | 2 +- 25 files changed, 15177 insertions(+), 15216 deletions(-) delete mode 100644 src/idmapped-mounts/idmapped-mounts.c delete mode 100644 src/idmapped-mounts/utils.c delete mode 100644 src/idmapped-mounts/utils.h rename src/{idmapped-mounts => vfs}/Makefile (59%) create mode 100644 src/vfs/btrfs-idmapped-mounts.c create mode 100644 src/vfs/btrfs-idmapped-mounts.h create mode 100644 src/vfs/idmapped-mounts.c create mode 100644 src/vfs/idmapped-mounts.h rename src/{idmapped-mounts => vfs}/missing.h (93%) rename src/{idmapped-mounts => vfs}/mount-idmapped.c (100%) create mode 100644 src/vfs/utils.c create mode 100644 src/vfs/utils.h create mode 100644 src/vfs/vfstest.c base-commit: 87cf32ad3fa234e3d5ec501e0f86516bef91d805 -- 2.34.1