diff options
author | Qu Wenruo <quwenruo@cn.fujitsu.com> | 2016-05-19 16:44:35 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2016-06-01 14:56:56 +0200 |
commit | 7c43be8b578ba0133f18beb20d46c68e0225f941 (patch) | |
tree | bae2f4c0f49cf1ba65993706ed1a39b475d5e53d /disk-io.c | |
parent | 6a0d3bf28d42b9b4249056b213636952d4575ace (diff) |
btrfs-progs: Enhance tree block check by checking empty leaf or node
For btrfs, it's possible to have empty leaf, but empty node is not
possible.
Add check for empty node for tree blocks.
Suggested-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'disk-io.c')
-rw-r--r-- | disk-io.c | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -67,6 +67,11 @@ static int check_tree_block(struct btrfs_fs_info *fs_info, nodesize)) return BTRFS_BAD_NRITEMS; + /* Only leaf can be empty */ + if (btrfs_header_nritems(buf) == 0 && + btrfs_header_level(buf) != 0) + return BTRFS_BAD_NRITEMS; + fs_devices = fs_info->fs_devices; while (fs_devices) { if (fs_info->ignore_fsid_mismatch || |