mirror of https://gitee.com/openkylin/linux.git
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
|
@ -1254,21 +1254,13 @@ static noinline int add_inode_ref(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;
|
||||
struct btrfs_path *path;
|
||||
|
||||
path = btrfs_alloc_path();
|
||||
if (!path)
|
||||
return -ENOMEM;
|
||||
|
||||
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);
|
||||
ret = btrfs_insert_orphan_item(trans, root, ino);
|
||||
if (ret == -EEXIST)
|
||||
ret = 0;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue