Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs
Pull btrfs fixes from Chris Mason: "Filipe is nailing down some problems with our skinny extent variation, and Dave's patch fixes endian problems in the new super block checks" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: Btrfs: fix race that makes btrfs_lookup_extent_info miss skinny extent items Btrfs: properly clean up btrfs_end_io_wq_cache Btrfs: fix invalid leaf slot access in btrfs_lookup_extent() btrfs: use macro accessors in superblock validation checks
This commit is contained in:
@@ -710,8 +710,8 @@ void btrfs_clear_space_info_full(struct btrfs_fs_info *info)
|
||||
rcu_read_unlock();
|
||||
}
|
||||
|
||||
/* simple helper to search for an existing extent at a given offset */
|
||||
int btrfs_lookup_extent(struct btrfs_root *root, u64 start, u64 len)
|
||||
/* simple helper to search for an existing data extent at a given offset */
|
||||
int btrfs_lookup_data_extent(struct btrfs_root *root, u64 start, u64 len)
|
||||
{
|
||||
int ret;
|
||||
struct btrfs_key key;
|
||||
@@ -726,12 +726,6 @@ int btrfs_lookup_extent(struct btrfs_root *root, u64 start, u64 len)
|
||||
key.type = BTRFS_EXTENT_ITEM_KEY;
|
||||
ret = btrfs_search_slot(NULL, root->fs_info->extent_root, &key, path,
|
||||
0, 0);
|
||||
if (ret > 0) {
|
||||
btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]);
|
||||
if (key.objectid == start &&
|
||||
key.type == BTRFS_METADATA_ITEM_KEY)
|
||||
ret = 0;
|
||||
}
|
||||
btrfs_free_path(path);
|
||||
return ret;
|
||||
}
|
||||
@@ -786,7 +780,6 @@ search_again:
|
||||
else
|
||||
key.type = BTRFS_EXTENT_ITEM_KEY;
|
||||
|
||||
again:
|
||||
ret = btrfs_search_slot(trans, root->fs_info->extent_root,
|
||||
&key, path, 0, 0);
|
||||
if (ret < 0)
|
||||
@@ -802,13 +795,6 @@ again:
|
||||
key.offset == root->nodesize)
|
||||
ret = 0;
|
||||
}
|
||||
if (ret) {
|
||||
key.objectid = bytenr;
|
||||
key.type = BTRFS_EXTENT_ITEM_KEY;
|
||||
key.offset = root->nodesize;
|
||||
btrfs_release_path(path);
|
||||
goto again;
|
||||
}
|
||||
}
|
||||
|
||||
if (ret == 0) {
|
||||
|
Reference in New Issue
Block a user