btrfs: simplify insert_orphan_item
We can search and add the orphan item in one go, btrfs_insert_orphan_item will find out if the item already exists. Signed-off-by: David Sterba <dsterba@suse.cz>
This commit is contained in:
parent
c234a24de9
commit
9c4f61f01d
1 changed files with 4 additions and 12 deletions
|
@ -1254,21 +1254,13 @@ out:
|
||||||
}
|
}
|
||||||
|
|
||||||
static int insert_orphan_item(struct btrfs_trans_handle *trans,
|
static int insert_orphan_item(struct btrfs_trans_handle *trans,
|
||||||
struct btrfs_root *root, u64 offset)
|
struct btrfs_root *root, u64 ino)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
struct btrfs_path *path;
|
|
||||||
|
|
||||||
path = btrfs_alloc_path();
|
ret = btrfs_insert_orphan_item(trans, root, ino);
|
||||||
if (!path)
|
if (ret == -EEXIST)
|
||||||
return -ENOMEM;
|
ret = 0;
|
||||||
|
|
||||||
ret = btrfs_find_item(root, path, BTRFS_ORPHAN_OBJECTID,
|
|
||||||
offset, BTRFS_ORPHAN_ITEM_KEY, NULL);
|
|
||||||
if (ret > 0)
|
|
||||||
ret = btrfs_insert_orphan_item(trans, root, offset);
|
|
||||||
|
|
||||||
btrfs_free_path(path);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue