mirror of
https://github.com/kdave/btrfs-progs
synced 2024-12-28 00:52:17 +00:00
7a8d5d5014
Verify that a filesystem check operation (fsck) does not report the following scenario as an error: An extent is shared between two inodes, as a result of clone/reflink operation, and for one of the inodes, lets call it inode A, the extent is referenced through a file extent item as a prealloc extent, while for the other inode, call it inode B, the extent is referenced through a regular file extent item, that is, it was written to. The goal of this test is to make sure a filesystem check operation will not report "odd csum items" errors for the prealloc extent at inode A, because this scenario is valid since the extent was written through inode B and therefore it is expected to have checksum items in the filesystem's checksum btree for that shared extent. Such scenario can be created with the following steps for example: mkfs.btrfs -f /dev/sdb mount /dev/sdb /mnt touch /mnt/foo xfs_io -c "falloc 0 256K" /mnt/foo sync xfs_io -c "pwrite -S 0xab 0 256K" /mnt/foo touch /mnt/bar xfs_io -c "reflink /mnt/foo 0 0 256K" /mnt/bar xfs_io -c "fsync" /mnt/bar <power fail> mount /dev/sdb /mnt umount /mnt This scenario is fixed by the following patch for the filesystem checker: "Btrfs-progs: check, fix false error reports for shared prealloc extents" Signed-off-by: Filipe Manana <fdmanana@suse.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com> |
||
---|---|---|
.. | ||
001-bad-file-extent-bytenr | ||
002-bad-transid | ||
003-shift-offsets | ||
004-no-dir-index | ||
005-bad-item-offset | ||
006-bad-root-items | ||
007-bad-offset-snapshots | ||
008-bad-dir-index-name | ||
009-no-dir-item-or-index | ||
010-no-rootdir-inode-item | ||
011-no-inode-item | ||
012-leaf-corruption | ||
013-extent-tree-rebuild | ||
014-no-extent-info | ||
015-tree-reloc-tree | ||
016-wrong-inode-nbytes | ||
017-missing-all-file-extent | ||
018-leaf-crossing-stripes | ||
019-non-skinny-false-alert | ||
020-extent-ref-cases | ||
021-partially-dropped-snapshot-case | ||
022-qgroup-rescan-halfway | ||
023-qgroup-stack-overflow | ||
024-clear-space-cache | ||
025-file-extents | ||
026-bad-dir-item-name | ||
027-bad-extent-inline-ref-type | ||
028-unaligned-super-dev-sizes | ||
029-valid-orphan-item | ||
030-reflinked-prealloc-extents |