diff --git a/btrfs-snapshots-diff.py b/btrfs-snapshots-diff.py index 8cd1ce4..8ffdd29 100755 --- a/btrfs-snapshots-diff.py +++ b/btrfs-snapshots-diff.py @@ -322,22 +322,24 @@ def decode(self, bogus=True): ) elif command == 'BTRFS_SEND_C_CLONE': - offset2, path = self._tlv_get_string('BTRFS_SEND_A_PATH', offset) offset2, file_offset = self._tlv_get_u64( - 'BTRFS_SEND_A_FILE_OFFSET', offset2 + 'BTRFS_SEND_A_FILE_OFFSET', offset ) offset2, clone_len = self._tlv_get_u64( 'BTRFS_SEND_A_CLONE_LEN', offset2 ) + offset2, path = self._tlv_get_string( + 'BTRFS_SEND_A_PATH', offset2 + ) offset2, clone_uuid = self._tlv_get_uuid( 'BTRFS_SEND_A_CLONE_UUID', offset2 ) - offset2, clone_transid = self._tlv_get_u64( - 'BTRFS_SEND_A_CLONE_TRANSID', offset2 + offset2, clone_ctransid = self._tlv_get_u64( + 'BTRFS_SEND_A_CLONE_CTRANSID', offset2 ) offset2, clone_path = self._tlv_get_string( - 'BTRFS_SEND_A_CLONE_PATH', offset - ) # BTRFS_SEND_A_CLONE8PATH + 'BTRFS_SEND_A_CLONE_PATH', offset2 + ) offset2, clone_offset = self._tlv_get_u64( 'BTRFS_SEND_A_CLONE_OFFSET', offset2 ) @@ -349,7 +351,7 @@ def decode(self, bogus=True): 'file_offset': file_offset, 'clone_len': clone_len, 'clone_uuid': clone_uuid, - 'clone_transid': clone_transid, + 'clone_transid': clone_ctransid, 'clone_path': clone_path, 'clone_offset': clone_offset, } diff --git a/create-example.sh b/create-example.sh index 8b6d03f..f50274a 100755 --- a/create-example.sh +++ b/create-example.sh @@ -32,6 +32,8 @@ mkfifo fifo ln file hardlink ln -s file symlink echo 'Hello Btrfs' > 'xxx;yyy;zzz' +dd if=/dev/zero of=source bs=1024 count=1024 > /dev/null 2>&1 +cp --reflink=always source bbbb mv file file2 cd ..