mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 20:54:10 +08:00
btrfs: remove the extent item sanity checks in relocate_block_group
These checks are all taken care of for us by the tree checker code: - the flags don't change or are updated consistently - the v0 extent item format is invalid and caught in many other places too Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: Josef Bacik <josef@toxicpanda.com> Reviewed-by: David Sterba <dsterba@suse.com> [ update changelog ] Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
0ebb6bbbd4
commit
24cd638902
@ -3412,20 +3412,6 @@ static void unset_reloc_control(struct reloc_control *rc)
|
||||
mutex_unlock(&fs_info->reloc_mutex);
|
||||
}
|
||||
|
||||
static int check_extent_flags(u64 flags)
|
||||
{
|
||||
if ((flags & BTRFS_EXTENT_FLAG_DATA) &&
|
||||
(flags & BTRFS_EXTENT_FLAG_TREE_BLOCK))
|
||||
return 1;
|
||||
if (!(flags & BTRFS_EXTENT_FLAG_DATA) &&
|
||||
!(flags & BTRFS_EXTENT_FLAG_TREE_BLOCK))
|
||||
return 1;
|
||||
if ((flags & BTRFS_EXTENT_FLAG_DATA) &&
|
||||
(flags & BTRFS_BLOCK_FLAG_FULL_BACKREF))
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static noinline_for_stack
|
||||
int prepare_to_relocate(struct reloc_control *rc)
|
||||
{
|
||||
@ -3477,7 +3463,6 @@ static noinline_for_stack int relocate_block_group(struct reloc_control *rc)
|
||||
struct btrfs_path *path;
|
||||
struct btrfs_extent_item *ei;
|
||||
u64 flags;
|
||||
u32 item_size;
|
||||
int ret;
|
||||
int err = 0;
|
||||
int progress = 0;
|
||||
@ -3526,19 +3511,7 @@ restart:
|
||||
|
||||
ei = btrfs_item_ptr(path->nodes[0], path->slots[0],
|
||||
struct btrfs_extent_item);
|
||||
item_size = btrfs_item_size_nr(path->nodes[0], path->slots[0]);
|
||||
if (item_size >= sizeof(*ei)) {
|
||||
flags = btrfs_extent_flags(path->nodes[0], ei);
|
||||
ret = check_extent_flags(flags);
|
||||
BUG_ON(ret);
|
||||
} else if (unlikely(item_size == sizeof(struct btrfs_extent_item_v0))) {
|
||||
err = -EINVAL;
|
||||
btrfs_print_v0_err(trans->fs_info);
|
||||
btrfs_abort_transaction(trans, err);
|
||||
break;
|
||||
} else {
|
||||
BUG();
|
||||
}
|
||||
flags = btrfs_extent_flags(path->nodes[0], ei);
|
||||
|
||||
if (flags & BTRFS_EXTENT_FLAG_TREE_BLOCK) {
|
||||
ret = add_tree_block(rc, &key, path, &blocks);
|
||||
|
Loading…
Reference in New Issue
Block a user