Commit 4467af88 authored by Filipe Manana's avatar Filipe Manana Committed by David Sterba

btrfs: remove root argument from btrfs_unlink_inode()

The root argument passed to btrfs_unlink_inode() and its callee,
__btrfs_unlink_inode(), always matches the root of the given directory and
the given inode. So remove the argument and make __btrfs_unlink_inode()
use the root of the directory.
Signed-off-by: default avatarFilipe Manana <fdmanana@suse.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 9798ba24
...@@ -3195,7 +3195,6 @@ void __btrfs_del_delalloc_inode(struct btrfs_root *root, ...@@ -3195,7 +3195,6 @@ void __btrfs_del_delalloc_inode(struct btrfs_root *root,
struct inode *btrfs_lookup_dentry(struct inode *dir, struct dentry *dentry); struct inode *btrfs_lookup_dentry(struct inode *dir, struct dentry *dentry);
int btrfs_set_inode_index(struct btrfs_inode *dir, u64 *index); int btrfs_set_inode_index(struct btrfs_inode *dir, u64 *index);
int btrfs_unlink_inode(struct btrfs_trans_handle *trans, int btrfs_unlink_inode(struct btrfs_trans_handle *trans,
struct btrfs_root *root,
struct btrfs_inode *dir, struct btrfs_inode *inode, struct btrfs_inode *dir, struct btrfs_inode *inode,
const char *name, int name_len); const char *name, int name_len);
int btrfs_add_link(struct btrfs_trans_handle *trans, int btrfs_add_link(struct btrfs_trans_handle *trans,
......
...@@ -4056,11 +4056,11 @@ int btrfs_update_inode_fallback(struct btrfs_trans_handle *trans, ...@@ -4056,11 +4056,11 @@ int btrfs_update_inode_fallback(struct btrfs_trans_handle *trans,
* also drops the back refs in the inode to the directory * also drops the back refs in the inode to the directory
*/ */
static int __btrfs_unlink_inode(struct btrfs_trans_handle *trans, static int __btrfs_unlink_inode(struct btrfs_trans_handle *trans,
struct btrfs_root *root,
struct btrfs_inode *dir, struct btrfs_inode *dir,
struct btrfs_inode *inode, struct btrfs_inode *inode,
const char *name, int name_len) const char *name, int name_len)
{ {
struct btrfs_root *root = dir->root;
struct btrfs_fs_info *fs_info = root->fs_info; struct btrfs_fs_info *fs_info = root->fs_info;
struct btrfs_path *path; struct btrfs_path *path;
int ret = 0; int ret = 0;
...@@ -4150,15 +4150,14 @@ static int __btrfs_unlink_inode(struct btrfs_trans_handle *trans, ...@@ -4150,15 +4150,14 @@ static int __btrfs_unlink_inode(struct btrfs_trans_handle *trans,
} }
int btrfs_unlink_inode(struct btrfs_trans_handle *trans, int btrfs_unlink_inode(struct btrfs_trans_handle *trans,
struct btrfs_root *root,
struct btrfs_inode *dir, struct btrfs_inode *inode, struct btrfs_inode *dir, struct btrfs_inode *inode,
const char *name, int name_len) const char *name, int name_len)
{ {
int ret; int ret;
ret = __btrfs_unlink_inode(trans, root, dir, inode, name, name_len); ret = __btrfs_unlink_inode(trans, dir, inode, name, name_len);
if (!ret) { if (!ret) {
drop_nlink(&inode->vfs_inode); drop_nlink(&inode->vfs_inode);
ret = btrfs_update_inode(trans, root, inode); ret = btrfs_update_inode(trans, inode->root, inode);
} }
return ret; return ret;
} }
...@@ -4187,7 +4186,6 @@ static struct btrfs_trans_handle *__unlink_start_trans(struct inode *dir) ...@@ -4187,7 +4186,6 @@ static struct btrfs_trans_handle *__unlink_start_trans(struct inode *dir)
static int btrfs_unlink(struct inode *dir, struct dentry *dentry) static int btrfs_unlink(struct inode *dir, struct dentry *dentry)
{ {
struct btrfs_root *root = BTRFS_I(dir)->root;
struct btrfs_trans_handle *trans; struct btrfs_trans_handle *trans;
struct inode *inode = d_inode(dentry); struct inode *inode = d_inode(dentry);
int ret; int ret;
...@@ -4199,7 +4197,7 @@ static int btrfs_unlink(struct inode *dir, struct dentry *dentry) ...@@ -4199,7 +4197,7 @@ static int btrfs_unlink(struct inode *dir, struct dentry *dentry)
btrfs_record_unlink_dir(trans, BTRFS_I(dir), BTRFS_I(d_inode(dentry)), btrfs_record_unlink_dir(trans, BTRFS_I(dir), BTRFS_I(d_inode(dentry)),
0); 0);
ret = btrfs_unlink_inode(trans, root, BTRFS_I(dir), ret = btrfs_unlink_inode(trans, BTRFS_I(dir),
BTRFS_I(d_inode(dentry)), dentry->d_name.name, BTRFS_I(d_inode(dentry)), dentry->d_name.name,
dentry->d_name.len); dentry->d_name.len);
if (ret) if (ret)
...@@ -4213,7 +4211,7 @@ static int btrfs_unlink(struct inode *dir, struct dentry *dentry) ...@@ -4213,7 +4211,7 @@ static int btrfs_unlink(struct inode *dir, struct dentry *dentry)
out: out:
btrfs_end_transaction(trans); btrfs_end_transaction(trans);
btrfs_btree_balance_dirty(root->fs_info); btrfs_btree_balance_dirty(BTRFS_I(dir)->root->fs_info);
return ret; return ret;
} }
...@@ -4564,7 +4562,6 @@ static int btrfs_rmdir(struct inode *dir, struct dentry *dentry) ...@@ -4564,7 +4562,6 @@ static int btrfs_rmdir(struct inode *dir, struct dentry *dentry)
{ {
struct inode *inode = d_inode(dentry); struct inode *inode = d_inode(dentry);
int err = 0; int err = 0;
struct btrfs_root *root = BTRFS_I(dir)->root;
struct btrfs_trans_handle *trans; struct btrfs_trans_handle *trans;
u64 last_unlink_trans; u64 last_unlink_trans;
...@@ -4589,7 +4586,7 @@ static int btrfs_rmdir(struct inode *dir, struct dentry *dentry) ...@@ -4589,7 +4586,7 @@ static int btrfs_rmdir(struct inode *dir, struct dentry *dentry)
last_unlink_trans = BTRFS_I(inode)->last_unlink_trans; last_unlink_trans = BTRFS_I(inode)->last_unlink_trans;
/* now the directory is empty */ /* now the directory is empty */
err = btrfs_unlink_inode(trans, root, BTRFS_I(dir), err = btrfs_unlink_inode(trans, BTRFS_I(dir),
BTRFS_I(d_inode(dentry)), dentry->d_name.name, BTRFS_I(d_inode(dentry)), dentry->d_name.name,
dentry->d_name.len); dentry->d_name.len);
if (!err) { if (!err) {
...@@ -4610,7 +4607,7 @@ static int btrfs_rmdir(struct inode *dir, struct dentry *dentry) ...@@ -4610,7 +4607,7 @@ static int btrfs_rmdir(struct inode *dir, struct dentry *dentry)
} }
out: out:
btrfs_end_transaction(trans); btrfs_end_transaction(trans);
btrfs_btree_balance_dirty(root->fs_info); btrfs_btree_balance_dirty(BTRFS_I(dir)->root->fs_info);
return err; return err;
} }
...@@ -9468,7 +9465,7 @@ static int btrfs_rename_exchange(struct inode *old_dir, ...@@ -9468,7 +9465,7 @@ static int btrfs_rename_exchange(struct inode *old_dir,
if (old_ino == BTRFS_FIRST_FREE_OBJECTID) { if (old_ino == BTRFS_FIRST_FREE_OBJECTID) {
ret = btrfs_unlink_subvol(trans, old_dir, old_dentry); ret = btrfs_unlink_subvol(trans, old_dir, old_dentry);
} else { /* src is an inode */ } else { /* src is an inode */
ret = __btrfs_unlink_inode(trans, root, BTRFS_I(old_dir), ret = __btrfs_unlink_inode(trans, BTRFS_I(old_dir),
BTRFS_I(old_dentry->d_inode), BTRFS_I(old_dentry->d_inode),
old_dentry->d_name.name, old_dentry->d_name.name,
old_dentry->d_name.len); old_dentry->d_name.len);
...@@ -9484,7 +9481,7 @@ static int btrfs_rename_exchange(struct inode *old_dir, ...@@ -9484,7 +9481,7 @@ static int btrfs_rename_exchange(struct inode *old_dir,
if (new_ino == BTRFS_FIRST_FREE_OBJECTID) { if (new_ino == BTRFS_FIRST_FREE_OBJECTID) {
ret = btrfs_unlink_subvol(trans, new_dir, new_dentry); ret = btrfs_unlink_subvol(trans, new_dir, new_dentry);
} else { /* dest is an inode */ } else { /* dest is an inode */
ret = __btrfs_unlink_inode(trans, dest, BTRFS_I(new_dir), ret = __btrfs_unlink_inode(trans, BTRFS_I(new_dir),
BTRFS_I(new_dentry->d_inode), BTRFS_I(new_dentry->d_inode),
new_dentry->d_name.name, new_dentry->d_name.name,
new_dentry->d_name.len); new_dentry->d_name.len);
...@@ -9759,7 +9756,7 @@ static int btrfs_rename(struct user_namespace *mnt_userns, ...@@ -9759,7 +9756,7 @@ static int btrfs_rename(struct user_namespace *mnt_userns,
*/ */
btrfs_pin_log_trans(root); btrfs_pin_log_trans(root);
log_pinned = true; log_pinned = true;
ret = __btrfs_unlink_inode(trans, root, BTRFS_I(old_dir), ret = __btrfs_unlink_inode(trans, BTRFS_I(old_dir),
BTRFS_I(d_inode(old_dentry)), BTRFS_I(d_inode(old_dentry)),
old_dentry->d_name.name, old_dentry->d_name.name,
old_dentry->d_name.len); old_dentry->d_name.len);
...@@ -9779,7 +9776,7 @@ static int btrfs_rename(struct user_namespace *mnt_userns, ...@@ -9779,7 +9776,7 @@ static int btrfs_rename(struct user_namespace *mnt_userns,
ret = btrfs_unlink_subvol(trans, new_dir, new_dentry); ret = btrfs_unlink_subvol(trans, new_dir, new_dentry);
BUG_ON(new_inode->i_nlink == 0); BUG_ON(new_inode->i_nlink == 0);
} else { } else {
ret = btrfs_unlink_inode(trans, dest, BTRFS_I(new_dir), ret = btrfs_unlink_inode(trans, BTRFS_I(new_dir),
BTRFS_I(d_inode(new_dentry)), BTRFS_I(d_inode(new_dentry)),
new_dentry->d_name.name, new_dentry->d_name.name,
new_dentry->d_name.len); new_dentry->d_name.len);
......
...@@ -954,7 +954,7 @@ static noinline int drop_one_dir_item(struct btrfs_trans_handle *trans, ...@@ -954,7 +954,7 @@ static noinline int drop_one_dir_item(struct btrfs_trans_handle *trans,
if (ret) if (ret)
goto out; goto out;
ret = btrfs_unlink_inode(trans, root, dir, BTRFS_I(inode), name, ret = btrfs_unlink_inode(trans, dir, BTRFS_I(inode), name,
name_len); name_len);
if (ret) if (ret)
goto out; goto out;
...@@ -1119,7 +1119,7 @@ static inline int __add_inode_ref(struct btrfs_trans_handle *trans, ...@@ -1119,7 +1119,7 @@ static inline int __add_inode_ref(struct btrfs_trans_handle *trans,
inc_nlink(&inode->vfs_inode); inc_nlink(&inode->vfs_inode);
btrfs_release_path(path); btrfs_release_path(path);
ret = btrfs_unlink_inode(trans, root, dir, inode, ret = btrfs_unlink_inode(trans, dir, inode,
victim_name, victim_name_len); victim_name, victim_name_len);
kfree(victim_name); kfree(victim_name);
if (ret) if (ret)
...@@ -1190,7 +1190,7 @@ static inline int __add_inode_ref(struct btrfs_trans_handle *trans, ...@@ -1190,7 +1190,7 @@ static inline int __add_inode_ref(struct btrfs_trans_handle *trans,
inc_nlink(&inode->vfs_inode); inc_nlink(&inode->vfs_inode);
btrfs_release_path(path); btrfs_release_path(path);
ret = btrfs_unlink_inode(trans, root, ret = btrfs_unlink_inode(trans,
BTRFS_I(victim_parent), BTRFS_I(victim_parent),
inode, inode,
victim_name, victim_name,
...@@ -1352,7 +1352,7 @@ static int unlink_old_inode_refs(struct btrfs_trans_handle *trans, ...@@ -1352,7 +1352,7 @@ static int unlink_old_inode_refs(struct btrfs_trans_handle *trans,
kfree(name); kfree(name);
goto out; goto out;
} }
ret = btrfs_unlink_inode(trans, root, BTRFS_I(dir), ret = btrfs_unlink_inode(trans, BTRFS_I(dir),
inode, name, namelen); inode, name, namelen);
kfree(name); kfree(name);
iput(dir); iput(dir);
...@@ -1450,7 +1450,7 @@ static int add_link(struct btrfs_trans_handle *trans, struct btrfs_root *root, ...@@ -1450,7 +1450,7 @@ static int add_link(struct btrfs_trans_handle *trans, struct btrfs_root *root,
ret = -ENOENT; ret = -ENOENT;
goto out; goto out;
} }
ret = btrfs_unlink_inode(trans, root, BTRFS_I(dir), BTRFS_I(other_inode), ret = btrfs_unlink_inode(trans, BTRFS_I(dir), BTRFS_I(other_inode),
name, namelen); name, namelen);
if (ret) if (ret)
goto out; goto out;
...@@ -1596,7 +1596,7 @@ static noinline int add_inode_ref(struct btrfs_trans_handle *trans, ...@@ -1596,7 +1596,7 @@ static noinline int add_inode_ref(struct btrfs_trans_handle *trans,
ret = btrfs_inode_ref_exists(inode, dir, key->type, ret = btrfs_inode_ref_exists(inode, dir, key->type,
name, namelen); name, namelen);
if (ret > 0) { if (ret > 0) {
ret = btrfs_unlink_inode(trans, root, ret = btrfs_unlink_inode(trans,
BTRFS_I(dir), BTRFS_I(dir),
BTRFS_I(inode), BTRFS_I(inode),
name, namelen); name, namelen);
...@@ -2346,7 +2346,7 @@ static noinline int check_item_in_log(struct btrfs_trans_handle *trans, ...@@ -2346,7 +2346,7 @@ static noinline int check_item_in_log(struct btrfs_trans_handle *trans,
} }
inc_nlink(inode); inc_nlink(inode);
ret = btrfs_unlink_inode(trans, root, BTRFS_I(dir), ret = btrfs_unlink_inode(trans, BTRFS_I(dir),
BTRFS_I(inode), name, name_len); BTRFS_I(inode), name, name_len);
if (!ret) if (!ret)
ret = btrfs_run_delayed_items(trans); ret = btrfs_run_delayed_items(trans);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment