QA output created by 574

# Testing block_size=FSV_BLOCK_SIZE
/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

Unexpectedly was able to read full file (block_size=4096, file_len=200000, zap_offset=100, zap_len=10, is_merkle_tree=true, use_sparse_file=false)
Unexpectedly was able to read full file with DIO (block_size=4096, file_len=200000, zap_offset=100, zap_len=10, is_merkle_tree=true, use_sparse_file=false)
Didn't see SIGBUS when reading file via mmap
/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

Unexpectedly was able to read full file (block_size=4096, file_len=200000, zap_offset=100, zap_len=10, is_merkle_tree=true, use_sparse_file=true)
Unexpectedly was able to read full file with DIO (block_size=4096, file_len=200000, zap_offset=100, zap_len=10, is_merkle_tree=true, use_sparse_file=true)
Didn't see SIGBUS when reading file via mmap

# Testing block_size=1024 if supported
/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

Unexpectedly was able to read full file (block_size=1024, file_len=200000, zap_offset=100, zap_len=10, is_merkle_tree=true, use_sparse_file=false)
Unexpectedly was able to read full file with DIO (block_size=1024, file_len=200000, zap_offset=100, zap_len=10, is_merkle_tree=true, use_sparse_file=false)
Didn't see SIGBUS when reading file via mmap
/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

/usr/sbin/btrfs-corrupt-block: invalid option -- 'v'
usage: btrfs-corrupt-block [options] device

    Corrupt data structures on a btrfs filesystem. For testing only!

    -l|--logical EXTENT       logical extent to be corrupted 
    -c|--copy COPY            copy of the extent to be corrupted (usually 1 or 2, default: 0) 
    -b|--bytes COUNT          number of bytes to be corrupted 
    -e|--extent-record        corrupt the extent 
    -E|--extent-tree          corrupt the whole extent tree 
    -u|--chunk-record         corrupt the given chunk 
    -U|--chunk-tree           corrupt the whole whole chunk tree 
    -i|--inode INODE          inode number to corrupt (must also specify the field to corrupt) 
    -x|--file-extent EXTENT   file extent item to corrupt (must also specify -i for the inode and -f for the field to
                              corrupt) 
    -m|--metadata-block BLOCK metadata block to corrupt (must also specify -f for the field to corrupt) 
    -k|--keys                 corrupt block keys (set by --logical) 
    -K|--key      corrupt the given key (must also specify -f for the field and optionally -r for the root)
    -f|--field FIELD          field name in the item to corrupt 
    -I|--item                 corrupt an item corresponding to the passed key triplet (must also specify the field,
                              or a (bytes, offset, value) tuple to corrupt and root for the item) 
    -D|--dir-item             corrupt a dir item corresponding to the passed key triplet, must also specify a field
    -d|--delete               delete item corresponding to passed key triplet 
    -r|--root                 operate on this root 
    -C|--csum BYTENR          delete a csum for the specified bytenr. When used with -b it'll delete that many bytes,
                              otherwise it's just sectorsize 
    --block-group OFFSET      corrupt the given block group 
    --value VALUE             value to use for corrupting item data 
    --offset OFFSET           offset to use for corrupting item data 

Unexpectedly was able to read full file (block_size=1024, file_len=200000, zap_offset=100, zap_len=10, is_merkle_tree=true, use_sparse_file=true)
Unexpectedly was able to read full file with DIO (block_size=1024, file_len=200000, zap_offset=100, zap_len=10, is_merkle_tree=true, use_sparse_file=true)
Didn't see SIGBUS when reading file via mmap

# Testing block_size=4096 if supported

# Testing block_size=16384 if supported

# Testing block_size=65536 if supported