Here is the second posting of the FSID change support for user space. For background information refer to the the initial posting [0]. The major changes in this version are: - Modified the sequence of operations when changing the fsid. Now it's split among 2 transactions with the first one setting a flag (similarly to what the old fsid change code does) and the second transaction applying the new FSID and incompat flag
- Expanded the test coverage with several crafted images which simulate failure scenarios that could occur while fsid change is in progress. - Also added the last 2 clean up patches which can be merged independently of the fsid changes. [0] https://lore.kernel.org/linux-btrfs/1535531754-29774-1-git-send-email-nbori...@suse.com/ Nikolay Borisov (8): btrfstune: Remove fs_info arg from change_device_uuid btrfstune: Rename change_header_uuid to change_buffer_header_uuid btrfs-progs: Add support for metadata_uuid field. btrfstune: Add support for changing the user uuid btrfs-progs: tests: Add tests for changing fsid feature btrfs-progs: Remove fsid/metdata_uuid fields from fs_info btrfs-progs: Remove btrfs_fs_info::new_fsid btrfs-progs: Directly pass root to change_devices_uuid btrfstune.c | 237 ++++++++++++++++++------ check/main.c | 2 +- chunk-recover.c | 17 +- cmds-filesystem.c | 2 + cmds-inspect-dump-super.c | 22 ++- convert/common.c | 2 + ctree.c | 15 +- ctree.h | 10 +- disk-io.c | 62 +++++-- image/main.c | 25 ++- tests/misc-tests/033-metadata-uuid/disk1.raw.xz | Bin 0 -> 78336 bytes tests/misc-tests/033-metadata-uuid/disk2.raw.xz | Bin 0 -> 77664 bytes tests/misc-tests/033-metadata-uuid/disk3.raw.xz | Bin 0 -> 78328 bytes tests/misc-tests/033-metadata-uuid/disk4.raw.xz | Bin 0 -> 77592 bytes tests/misc-tests/033-metadata-uuid/disk5.raw.xz | Bin 0 -> 78348 bytes tests/misc-tests/033-metadata-uuid/disk6.raw.xz | Bin 0 -> 77552 bytes tests/misc-tests/033-metadata-uuid/test.sh | 225 ++++++++++++++++++++++ volumes.c | 37 +++- volumes.h | 1 + 19 files changed, 557 insertions(+), 100 deletions(-) create mode 100644 tests/misc-tests/033-metadata-uuid/disk1.raw.xz create mode 100644 tests/misc-tests/033-metadata-uuid/disk2.raw.xz create mode 100644 tests/misc-tests/033-metadata-uuid/disk3.raw.xz create mode 100644 tests/misc-tests/033-metadata-uuid/disk4.raw.xz create mode 100644 tests/misc-tests/033-metadata-uuid/disk5.raw.xz create mode 100644 tests/misc-tests/033-metadata-uuid/disk6.raw.xz create mode 100755 tests/misc-tests/033-metadata-uuid/test.sh -- 2.7.4