Merge branch 'for-chris' of git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-next
This commit is contained in:
@ -714,8 +714,10 @@ retry:
|
||||
async_extent->ram_size - 1, 0);
|
||||
|
||||
em = alloc_extent_map();
|
||||
if (!em)
|
||||
if (!em) {
|
||||
ret = -ENOMEM;
|
||||
goto out_free_reserve;
|
||||
}
|
||||
em->start = async_extent->start;
|
||||
em->len = async_extent->ram_size;
|
||||
em->orig_start = em->start;
|
||||
@ -922,8 +924,10 @@ static noinline int __cow_file_range(struct btrfs_trans_handle *trans,
|
||||
}
|
||||
|
||||
em = alloc_extent_map();
|
||||
if (!em)
|
||||
if (!em) {
|
||||
ret = -ENOMEM;
|
||||
goto out_reserve;
|
||||
}
|
||||
em->start = start;
|
||||
em->orig_start = em->start;
|
||||
ram_size = ins.offset;
|
||||
@ -4723,6 +4727,7 @@ void btrfs_evict_inode(struct inode *inode)
|
||||
btrfs_end_transaction(trans, root);
|
||||
btrfs_btree_balance_dirty(root);
|
||||
no_delete:
|
||||
btrfs_remove_delayed_node(inode);
|
||||
clear_inode(inode);
|
||||
return;
|
||||
}
|
||||
@ -4838,14 +4843,13 @@ static void inode_tree_add(struct inode *inode)
|
||||
struct rb_node **p;
|
||||
struct rb_node *parent;
|
||||
u64 ino = btrfs_ino(inode);
|
||||
again:
|
||||
p = &root->inode_tree.rb_node;
|
||||
parent = NULL;
|
||||
|
||||
if (inode_unhashed(inode))
|
||||
return;
|
||||
|
||||
again:
|
||||
parent = NULL;
|
||||
spin_lock(&root->inode_lock);
|
||||
p = &root->inode_tree.rb_node;
|
||||
while (*p) {
|
||||
parent = *p;
|
||||
entry = rb_entry(parent, struct btrfs_inode, rb_node);
|
||||
@ -8000,7 +8004,6 @@ void btrfs_destroy_inode(struct inode *inode)
|
||||
inode_tree_del(inode);
|
||||
btrfs_drop_extent_cache(inode, 0, (u64)-1, 0);
|
||||
free:
|
||||
btrfs_remove_delayed_node(inode);
|
||||
call_rcu(&inode->i_rcu, btrfs_i_callback);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user