]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
btrfs: pass struct btrfs_inode to btrfs_iget_locked()
authorDavid Sterba <dsterba@suse.com>
Mon, 17 Feb 2025 21:36:17 +0000 (22:36 +0100)
committerDavid Sterba <dsterba@suse.com>
Tue, 18 Mar 2025 19:35:43 +0000 (20:35 +0100)
Pass a struct btrfs_inode to btrfs_inode() as it's an internal
interface, allowing to remove some use of BTRFS_I.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/inode.c

index 69021842fb4b44d7b4c9a494062b9d9204344aa1..c24ba1b1e57d24ae2f92e01c46ee2fc9855bfbf1 100644 (file)
@@ -5611,7 +5611,7 @@ static int btrfs_find_actor(struct inode *inode, void *opaque)
                args->root == BTRFS_I(inode)->root;
 }
 
-static struct inode *btrfs_iget_locked(u64 ino, struct btrfs_root *root)
+static struct btrfs_inode *btrfs_iget_locked(u64 ino, struct btrfs_root *root)
 {
        struct inode *inode;
        struct btrfs_iget_args args;
@@ -5623,7 +5623,9 @@ static struct inode *btrfs_iget_locked(u64 ino, struct btrfs_root *root)
        inode = iget5_locked_rcu(root->fs_info->sb, hashval, btrfs_find_actor,
                             btrfs_init_locked_inode,
                             (void *)&args);
-       return inode;
+       if (!inode)
+               return NULL;
+       return BTRFS_I(inode);
 }
 
 /*
@@ -5633,22 +5635,22 @@ static struct inode *btrfs_iget_locked(u64 ino, struct btrfs_root *root)
 struct inode *btrfs_iget_path(u64 ino, struct btrfs_root *root,
                              struct btrfs_path *path)
 {
-       struct inode *inode;
+       struct btrfs_inode *inode;
        int ret;
 
        inode = btrfs_iget_locked(ino, root);
        if (!inode)
                return ERR_PTR(-ENOMEM);
 
-       if (!(inode->i_state & I_NEW))
-               return inode;
+       if (!(inode->vfs_inode.i_state & I_NEW))
+               return &inode->vfs_inode;
 
-       ret = btrfs_read_locked_inode(BTRFS_I(inode), path);
+       ret = btrfs_read_locked_inode(inode, path);
        if (ret)
                return ERR_PTR(ret);
 
-       unlock_new_inode(inode);
-       return inode;
+       unlock_new_inode(&inode->vfs_inode);
+       return &inode->vfs_inode;
 }
 
 /*
@@ -5656,7 +5658,7 @@ struct inode *btrfs_iget_path(u64 ino, struct btrfs_root *root,
  */
 struct inode *btrfs_iget(u64 ino, struct btrfs_root *root)
 {
-       struct inode *inode;
+       struct btrfs_inode *inode;
        struct btrfs_path *path;
        int ret;
 
@@ -5664,20 +5666,20 @@ struct inode *btrfs_iget(u64 ino, struct btrfs_root *root)
        if (!inode)
                return ERR_PTR(-ENOMEM);
 
-       if (!(inode->i_state & I_NEW))
-               return inode;
+       if (!(inode->vfs_inode.i_state & I_NEW))
+               return &inode->vfs_inode;
 
        path = btrfs_alloc_path();
        if (!path)
                return ERR_PTR(-ENOMEM);
 
-       ret = btrfs_read_locked_inode(BTRFS_I(inode), path);
+       ret = btrfs_read_locked_inode(inode, path);
        btrfs_free_path(path);
        if (ret)
                return ERR_PTR(ret);
 
-       unlock_new_inode(inode);
-       return inode;
+       unlock_new_inode(&inode->vfs_inode);
+       return &inode->vfs_inode;
 }
 
 static struct inode *new_simple_dir(struct inode *dir,