Skip to content

Commit

Permalink
btrfs: pass a btrfs_inode to fixup_inode_link_count()
Browse files Browse the repository at this point in the history
fixup_inode_link_count() mostly wants to use a btrfs_inode, plus it's an
internal function so it should take btrfs_inode instead of a VFS inode.
Change the argument type to btrfs_inode, avoiding several BTRFS_I() calls
too.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
  • Loading branch information
Filipe Manana authored and David Sterba committed Mar 18, 2025
1 parent b4c50cb commit 14d063e
Showing 1 changed file with 13 additions and 13 deletions.
26 changes: 13 additions & 13 deletions fs/btrfs/tree-log.c
Original file line number Diff line number Diff line change
Expand Up @@ -1610,43 +1610,43 @@ static int count_inode_refs(struct btrfs_inode *inode, struct btrfs_path *path)
* will free the inode.
*/
static noinline int fixup_inode_link_count(struct btrfs_trans_handle *trans,
struct inode *inode)
struct btrfs_inode *inode)
{
struct btrfs_root *root = BTRFS_I(inode)->root;
struct btrfs_root *root = inode->root;
struct btrfs_path *path;
int ret;
u64 nlink = 0;
u64 ino = btrfs_ino(BTRFS_I(inode));
const u64 ino = btrfs_ino(inode);

path = btrfs_alloc_path();
if (!path)
return -ENOMEM;

ret = count_inode_refs(BTRFS_I(inode), path);
ret = count_inode_refs(inode, path);
if (ret < 0)
goto out;

nlink = ret;

ret = count_inode_extrefs(BTRFS_I(inode), path);
ret = count_inode_extrefs(inode, path);
if (ret < 0)
goto out;

nlink += ret;

ret = 0;

if (nlink != inode->i_nlink) {
set_nlink(inode, nlink);
ret = btrfs_update_inode(trans, BTRFS_I(inode));
if (nlink != inode->vfs_inode.i_nlink) {
set_nlink(&inode->vfs_inode, nlink);
ret = btrfs_update_inode(trans, inode);
if (ret)
goto out;
}
if (S_ISDIR(inode->i_mode))
BTRFS_I(inode)->index_cnt = (u64)-1;
if (S_ISDIR(inode->vfs_inode.i_mode))
inode->index_cnt = (u64)-1;

if (inode->i_nlink == 0) {
if (S_ISDIR(inode->i_mode)) {
if (inode->vfs_inode.i_nlink == 0) {
if (S_ISDIR(inode->vfs_inode.i_mode)) {
ret = replay_dir_deletes(trans, root, NULL, path,
ino, 1);
if (ret)
Expand Down Expand Up @@ -1702,7 +1702,7 @@ static noinline int fixup_inode_link_counts(struct btrfs_trans_handle *trans,
break;
}

ret = fixup_inode_link_count(trans, &inode->vfs_inode);
ret = fixup_inode_link_count(trans, inode);
iput(&inode->vfs_inode);
if (ret)
break;
Expand Down

0 comments on commit 14d063e

Please sign in to comment.