Loading fs/btrfs/tree-checker.c +13 −1 Original line number Original line Diff line number Diff line Loading @@ -1648,7 +1648,6 @@ static int check_leaf(struct extent_buffer *leaf, bool check_item_data) /* These trees must never be empty */ /* These trees must never be empty */ if (unlikely(owner == BTRFS_ROOT_TREE_OBJECTID || if (unlikely(owner == BTRFS_ROOT_TREE_OBJECTID || owner == BTRFS_CHUNK_TREE_OBJECTID || owner == BTRFS_CHUNK_TREE_OBJECTID || owner == BTRFS_EXTENT_TREE_OBJECTID || owner == BTRFS_DEV_TREE_OBJECTID || owner == BTRFS_DEV_TREE_OBJECTID || owner == BTRFS_FS_TREE_OBJECTID || owner == BTRFS_FS_TREE_OBJECTID || owner == BTRFS_DATA_RELOC_TREE_OBJECTID)) { owner == BTRFS_DATA_RELOC_TREE_OBJECTID)) { Loading @@ -1657,12 +1656,25 @@ static int check_leaf(struct extent_buffer *leaf, bool check_item_data) owner); owner); return -EUCLEAN; return -EUCLEAN; } } /* Unknown tree */ /* Unknown tree */ if (unlikely(owner == 0)) { if (unlikely(owner == 0)) { generic_err(leaf, 0, generic_err(leaf, 0, "invalid owner, root 0 is not defined"); "invalid owner, root 0 is not defined"); return -EUCLEAN; return -EUCLEAN; } } /* EXTENT_TREE_V2 can have empty extent trees. */ if (btrfs_fs_incompat(fs_info, EXTENT_TREE_V2)) return 0; if (unlikely(owner == BTRFS_EXTENT_TREE_OBJECTID)) { generic_err(leaf, 0, "invalid root, root %llu must never be empty", owner); return -EUCLEAN; } return 0; return 0; } } Loading Loading
fs/btrfs/tree-checker.c +13 −1 Original line number Original line Diff line number Diff line Loading @@ -1648,7 +1648,6 @@ static int check_leaf(struct extent_buffer *leaf, bool check_item_data) /* These trees must never be empty */ /* These trees must never be empty */ if (unlikely(owner == BTRFS_ROOT_TREE_OBJECTID || if (unlikely(owner == BTRFS_ROOT_TREE_OBJECTID || owner == BTRFS_CHUNK_TREE_OBJECTID || owner == BTRFS_CHUNK_TREE_OBJECTID || owner == BTRFS_EXTENT_TREE_OBJECTID || owner == BTRFS_DEV_TREE_OBJECTID || owner == BTRFS_DEV_TREE_OBJECTID || owner == BTRFS_FS_TREE_OBJECTID || owner == BTRFS_FS_TREE_OBJECTID || owner == BTRFS_DATA_RELOC_TREE_OBJECTID)) { owner == BTRFS_DATA_RELOC_TREE_OBJECTID)) { Loading @@ -1657,12 +1656,25 @@ static int check_leaf(struct extent_buffer *leaf, bool check_item_data) owner); owner); return -EUCLEAN; return -EUCLEAN; } } /* Unknown tree */ /* Unknown tree */ if (unlikely(owner == 0)) { if (unlikely(owner == 0)) { generic_err(leaf, 0, generic_err(leaf, 0, "invalid owner, root 0 is not defined"); "invalid owner, root 0 is not defined"); return -EUCLEAN; return -EUCLEAN; } } /* EXTENT_TREE_V2 can have empty extent trees. */ if (btrfs_fs_incompat(fs_info, EXTENT_TREE_V2)) return 0; if (unlikely(owner == BTRFS_EXTENT_TREE_OBJECTID)) { generic_err(leaf, 0, "invalid root, root %llu must never be empty", owner); return -EUCLEAN; } return 0; return 0; } } Loading