summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Sterba <dsterba@suse.com>2015-07-03 18:07:17 +0200
committerDavid Sterba <dsterba@suse.com>2015-07-03 18:07:17 +0200
commitfd31a4d6ba65e17bd3f0565ea7f5ed1226e84be2 (patch)
treec7c7ae9737ce54628050633b61098d51928685ba
parentfabf14c540be8b85676c2637ad3741728bfe80fc (diff)
btrfs-progs: let corrupt-block kill nbytes
Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r--btrfs-corrupt-block.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/btrfs-corrupt-block.c b/btrfs-corrupt-block.c
index 6eb04a7f..1a2aa236 100644
--- a/btrfs-corrupt-block.c
+++ b/btrfs-corrupt-block.c
@@ -299,6 +299,7 @@ static void btrfs_corrupt_extent_tree(struct btrfs_trans_handle *trans,
enum btrfs_inode_field {
BTRFS_INODE_FIELD_ISIZE,
+ BTRFS_INODE_FIELD_NBYTES,
BTRFS_INODE_FIELD_BAD,
};
@@ -335,6 +336,8 @@ static enum btrfs_inode_field convert_inode_field(char *field)
{
if (!strncmp(field, "isize", FIELD_BUF_LEN))
return BTRFS_INODE_FIELD_ISIZE;
+ if (!strncmp(field, "nbytes", FIELD_BUF_LEN))
+ return BTRFS_INODE_FIELD_NBYTES;
return BTRFS_INODE_FIELD_BAD;
}
@@ -593,6 +596,11 @@ static int corrupt_inode(struct btrfs_trans_handle *trans,
bogus = generate_u64(orig);
btrfs_set_inode_size(path->nodes[0], ei, bogus);
break;
+ case BTRFS_INODE_FIELD_NBYTES:
+ orig = btrfs_inode_nbytes(path->nodes[0], ei);
+ bogus = generate_u64(orig);
+ btrfs_set_inode_nbytes(path->nodes[0], ei, bogus);
+ break;
default:
ret = -EINVAL;
break;