btrfs: make btrfs_update_inode take btrfs_inode
authorNikolay Borisov <nborisov@suse.com>
Mon, 2 Nov 2020 14:48:59 +0000 (16:48 +0200)
committerDavid Sterba <dsterba@suse.com>
Tue, 8 Dec 2020 14:54:11 +0000 (15:54 +0100)
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/block-group.c
fs/btrfs/ctree.h
fs/btrfs/file.c
fs/btrfs/free-space-cache.c
fs/btrfs/inode-map.c
fs/btrfs/inode.c
fs/btrfs/ioctl.c
fs/btrfs/reflink.c
fs/btrfs/tree-log.c
fs/btrfs/xattr.c

index 35be6dbca5e828c41791835762779d67f35e628c..ccc3271c20caa1e4ae2c714e2b4adf2e52fd34f7 100644 (file)
@@ -2405,7 +2405,7 @@ again:
         * time.
         */
        BTRFS_I(inode)->generation = 0;
-       ret = btrfs_update_inode(trans, root, inode);
+       ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
        if (ret) {
                /*
                 * So theoretically we could recover from this, simply set the
index ccc2339c6568c64780b9fdd6ee13fe4501f88f4c..ea443d3215d02c7fbc799ffe11fe709984121928 100644 (file)
@@ -3112,8 +3112,7 @@ struct extent_map *btrfs_get_extent(struct btrfs_inode *inode,
                                    struct page *page, size_t pg_offset,
                                    u64 start, u64 end);
 int btrfs_update_inode(struct btrfs_trans_handle *trans,
-                             struct btrfs_root *root,
-                             struct inode *inode);
+                      struct btrfs_root *root, struct btrfs_inode *inode);
 int btrfs_update_inode_fallback(struct btrfs_trans_handle *trans,
                                struct btrfs_root *root, struct inode *inode);
 int btrfs_orphan_add(struct btrfs_trans_handle *trans,
index 096be647c2341a638cad880f86fb68393dab38a4..39beab4c6d741d61faaa364d3f4513f415c2fd19 100644 (file)
@@ -2741,7 +2741,7 @@ int btrfs_replace_file_extents(struct inode *inode, struct btrfs_path *path,
 
                cur_offset = drop_args.drop_end;
 
-               ret = btrfs_update_inode(trans, root, inode);
+               ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
                if (ret)
                        break;
 
@@ -2978,7 +2978,7 @@ static int btrfs_punch_hole(struct inode *inode, loff_t offset, loff_t len)
        ASSERT(trans != NULL);
        inode_inc_iversion(inode);
        inode->i_mtime = inode->i_ctime = current_time(inode);
-       ret = btrfs_update_inode(trans, root, inode);
+       ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
        updated_inode = true;
        btrfs_end_transaction(trans);
        btrfs_btree_balance_dirty(fs_info);
@@ -3005,7 +3005,7 @@ out_only_mutex:
                } else {
                        int ret2;
 
-                       ret = btrfs_update_inode(trans, root, inode);
+                       ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
                        ret2 = btrfs_end_transaction(trans);
                        if (!ret)
                                ret = ret2;
@@ -3074,7 +3074,7 @@ static int btrfs_fallocate_update_isize(struct inode *inode,
        inode->i_ctime = current_time(inode);
        i_size_write(inode, end);
        btrfs_inode_safe_disk_i_size_write(BTRFS_I(inode), 0);
-       ret = btrfs_update_inode(trans, root, inode);
+       ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
        ret2 = btrfs_end_transaction(trans);
 
        return ret ? ret : ret2;
index d8010df20b581302fb31077f17122ad8cc4fd2d0..572c75d2169b01e274534d23763b49734ebdd703 100644 (file)
@@ -278,7 +278,7 @@ int btrfs_truncate_free_space_cache(struct btrfs_trans_handle *trans,
        if (ret)
                goto fail;
 
-       ret = btrfs_update_inode(trans, root, inode);
+       ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
 
 fail:
        if (locked)
@@ -1193,7 +1193,7 @@ out:
          "failed to write free space cache for block group %llu error %d",
                                  block_group->start, ret);
        }
-       btrfs_update_inode(trans, root, inode);
+       btrfs_update_inode(trans, root, BTRFS_I(inode));
 
        if (block_group) {
                /* the dirty list is protected by the dirty_bgs_lock */
@@ -1383,7 +1383,7 @@ out:
                invalidate_inode_pages2(inode->i_mapping);
                BTRFS_I(inode)->generation = 0;
        }
-       btrfs_update_inode(trans, root, inode);
+       btrfs_update_inode(trans, root, BTRFS_I(inode));
        if (must_iput)
                iput(inode);
        return ret;
index 76d2e43817eae135c8d89fb318a9085f9a4bd887..8cf39402b227143b29b36d295181e35b08f01a89 100644 (file)
@@ -463,7 +463,7 @@ again:
        }
 
        BTRFS_I(inode)->generation = 0;
-       ret = btrfs_update_inode(trans, root, inode);
+       ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
        if (ret) {
                btrfs_abort_transaction(trans, ret);
                goto out_put;
index 1b2bb73d1d99207f4b9b22cd8545ae8d584a7334..ed0249bdaf46a93c799df2b66536c1a6e5197ec4 100644 (file)
@@ -382,7 +382,7 @@ static noinline int cow_file_range_inline(struct btrfs_inode *inode, u64 start,
        }
 
        btrfs_update_inode_bytes(inode, inline_len, drop_args.bytes_found);
-       ret = btrfs_update_inode(trans, root, &inode->vfs_inode);
+       ret = btrfs_update_inode(trans, root, inode);
        if (ret && ret != -ENOSPC) {
                btrfs_abort_transaction(trans, ret);
                goto out;
@@ -3657,7 +3657,8 @@ failed:
  * copy everything in the in-memory inode into the btree.
  */
 noinline int btrfs_update_inode(struct btrfs_trans_handle *trans,
-                               struct btrfs_root *root, struct inode *inode)
+                               struct btrfs_root *root,
+                               struct btrfs_inode *inode)
 {
        struct btrfs_fs_info *fs_info = root->fs_info;
        int ret;
@@ -3669,18 +3670,18 @@ noinline int btrfs_update_inode(struct btrfs_trans_handle *trans,
         * The data relocation inode should also be directly updated
         * without delay
         */
-       if (!btrfs_is_free_space_inode(BTRFS_I(inode))
+       if (!btrfs_is_free_space_inode(inode)
            && root->root_key.objectid != BTRFS_DATA_RELOC_TREE_OBJECTID
            && !test_bit(BTRFS_FS_LOG_RECOVERING, &fs_info->flags)) {
                btrfs_update_root_times(trans, root);
 
-               ret = btrfs_delayed_update_inode(trans, root, BTRFS_I(inode));
+               ret = btrfs_delayed_update_inode(trans, root, inode);
                if (!ret)
-                       btrfs_set_inode_last_trans(trans, BTRFS_I(inode));
+                       btrfs_set_inode_last_trans(trans, inode);
                return ret;
        }
 
-       return btrfs_update_inode_item(trans, root, BTRFS_I(inode));
+       return btrfs_update_inode_item(trans, root, inode);
 }
 
 noinline int btrfs_update_inode_fallback(struct btrfs_trans_handle *trans,
@@ -3689,7 +3690,7 @@ noinline int btrfs_update_inode_fallback(struct btrfs_trans_handle *trans,
 {
        int ret;
 
-       ret = btrfs_update_inode(trans, root, inode);
+       ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
        if (ret == -ENOSPC)
                return btrfs_update_inode_item(trans, root, BTRFS_I(inode));
        return ret;
@@ -3799,7 +3800,7 @@ err:
        inode_inc_iversion(&dir->vfs_inode);
        inode->vfs_inode.i_ctime = dir->vfs_inode.i_mtime =
                dir->vfs_inode.i_ctime = current_time(&inode->vfs_inode);
-       ret = btrfs_update_inode(trans, root, &dir->vfs_inode);
+       ret = btrfs_update_inode(trans, root, dir);
 out:
        return ret;
 }
@@ -3813,7 +3814,7 @@ int btrfs_unlink_inode(struct btrfs_trans_handle *trans,
        ret = __btrfs_unlink_inode(trans, root, dir, inode, name, name_len);
        if (!ret) {
                drop_nlink(&inode->vfs_inode);
-               ret = btrfs_update_inode(trans, root, &inode->vfs_inode);
+               ret = btrfs_update_inode(trans, root, inode);
        }
        return ret;
 }
@@ -4836,7 +4837,7 @@ static int maybe_insert_hole(struct btrfs_root *root, struct inode *inode,
                btrfs_abort_transaction(trans, ret);
        } else {
                btrfs_update_inode_bytes(BTRFS_I(inode), 0, drop_args.bytes_found);
-               btrfs_update_inode(trans, root, inode);
+               btrfs_update_inode(trans, root, BTRFS_I(inode));
        }
        btrfs_end_transaction(trans);
        return ret;
@@ -4998,7 +4999,7 @@ static int btrfs_setsize(struct inode *inode, struct iattr *attr)
                i_size_write(inode, newsize);
                btrfs_inode_safe_disk_i_size_write(BTRFS_I(inode), 0);
                pagecache_isize_extended(inode, oldsize, newsize);
-               ret = btrfs_update_inode(trans, root, inode);
+               ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
                btrfs_drew_write_unlock(&root->snapshot_lock);
                btrfs_end_transaction(trans);
        } else {
@@ -5910,7 +5911,7 @@ static int btrfs_dirty_inode(struct inode *inode)
        if (IS_ERR(trans))
                return PTR_ERR(trans);
 
-       ret = btrfs_update_inode(trans, root, inode);
+       ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
        if (ret && ret == -ENOSPC) {
                /* whoops, lets try again with the full transaction */
                btrfs_end_transaction(trans);
@@ -5918,7 +5919,7 @@ static int btrfs_dirty_inode(struct inode *inode)
                if (IS_ERR(trans))
                        return PTR_ERR(trans);
 
-               ret = btrfs_update_inode(trans, root, inode);
+               ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
        }
        btrfs_end_transaction(trans);
        if (BTRFS_I(inode)->delayed_node)
@@ -6306,7 +6307,7 @@ int btrfs_add_link(struct btrfs_trans_handle *trans,
                parent_inode->vfs_inode.i_mtime = now;
                parent_inode->vfs_inode.i_ctime = now;
        }
-       ret = btrfs_update_inode(trans, root, &parent_inode->vfs_inode);
+       ret = btrfs_update_inode(trans, root, parent_inode);
        if (ret)
                btrfs_abort_transaction(trans, ret);
        return ret;
@@ -6397,7 +6398,7 @@ static int btrfs_mknod(struct inode *dir, struct dentry *dentry,
        if (err)
                goto out_unlock;
 
-       btrfs_update_inode(trans, root, inode);
+       btrfs_update_inode(trans, root, BTRFS_I(inode));
        d_instantiate_new(dentry, inode);
 
 out_unlock:
@@ -6456,7 +6457,7 @@ static int btrfs_create(struct inode *dir, struct dentry *dentry,
        if (err)
                goto out_unlock;
 
-       err = btrfs_update_inode(trans, root, inode);
+       err = btrfs_update_inode(trans, root, BTRFS_I(inode));
        if (err)
                goto out_unlock;
 
@@ -6528,7 +6529,7 @@ static int btrfs_link(struct dentry *old_dentry, struct inode *dir,
        } else {
                struct dentry *parent = dentry->d_parent;
 
-               err = btrfs_update_inode(trans, root, inode);
+               err = btrfs_update_inode(trans, root, BTRFS_I(inode));
                if (err)
                        goto fail;
                if (inode->i_nlink == 1) {
@@ -6596,7 +6597,7 @@ static int btrfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
                goto out_fail;
 
        btrfs_i_size_write(BTRFS_I(inode), 0);
-       err = btrfs_update_inode(trans, root, inode);
+       err = btrfs_update_inode(trans, root, BTRFS_I(inode));
        if (err)
                goto out_fail;
 
@@ -8521,7 +8522,7 @@ static int btrfs_truncate(struct inode *inode, bool skip_writeback)
                if (ret != -ENOSPC && ret != -EAGAIN)
                        break;
 
-               ret = btrfs_update_inode(trans, root, inode);
+               ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
                if (ret)
                        break;
 
@@ -8567,7 +8568,7 @@ static int btrfs_truncate(struct inode *inode, bool skip_writeback)
                int ret2;
 
                trans->block_rsv = &fs_info->trans_block_rsv;
-               ret2 = btrfs_update_inode(trans, root, inode);
+               ret2 = btrfs_update_inode(trans, root, BTRFS_I(inode));
                if (ret2 && !ret)
                        ret = ret2;
 
@@ -8613,7 +8614,7 @@ int btrfs_create_subvol_root(struct btrfs_trans_handle *trans,
                          "error inheriting subvolume %llu properties: %d",
                          new_root->root_key.objectid, err);
 
-       err = btrfs_update_inode(trans, new_root, inode);
+       err = btrfs_update_inode(trans, new_root, BTRFS_I(inode));
 
        iput(inode);
        return err;
@@ -8969,7 +8970,7 @@ static int btrfs_rename_exchange(struct inode *old_dir,
                                           old_dentry->d_name.name,
                                           old_dentry->d_name.len);
                if (!ret)
-                       ret = btrfs_update_inode(trans, root, old_inode);
+                       ret = btrfs_update_inode(trans, root, BTRFS_I(old_inode));
        }
        if (ret) {
                btrfs_abort_transaction(trans, ret);
@@ -8985,7 +8986,7 @@ static int btrfs_rename_exchange(struct inode *old_dir,
                                           new_dentry->d_name.name,
                                           new_dentry->d_name.len);
                if (!ret)
-                       ret = btrfs_update_inode(trans, dest, new_inode);
+                       ret = btrfs_update_inode(trans, dest, BTRFS_I(new_inode));
        }
        if (ret) {
                btrfs_abort_transaction(trans, ret);
@@ -9105,7 +9106,7 @@ static int btrfs_whiteout_for_rename(struct btrfs_trans_handle *trans,
        if (ret)
                goto out;
 
-       ret = btrfs_update_inode(trans, root, inode);
+       ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
 out:
        unlock_new_inode(inode);
        if (ret)
@@ -9239,7 +9240,7 @@ static int btrfs_rename(struct inode *old_dir, struct dentry *old_dentry,
                                        old_dentry->d_name.name,
                                        old_dentry->d_name.len);
                if (!ret)
-                       ret = btrfs_update_inode(trans, root, old_inode);
+                       ret = btrfs_update_inode(trans, root, BTRFS_I(old_inode));
        }
        if (ret) {
                btrfs_abort_transaction(trans, ret);
@@ -9599,7 +9600,7 @@ static int btrfs_symlink(struct inode *dir, struct dentry *dentry,
        inode_nohighmem(inode);
        inode_set_bytes(inode, name_len);
        btrfs_i_size_write(BTRFS_I(inode), name_len);
-       err = btrfs_update_inode(trans, root, inode);
+       err = btrfs_update_inode(trans, root, BTRFS_I(inode));
        /*
         * Last step, add directory indexes for our symlink inode. This is the
         * last step to avoid extra cleanup of these indexes if an error happens
@@ -9796,7 +9797,7 @@ next:
                        btrfs_inode_safe_disk_i_size_write(BTRFS_I(inode), 0);
                }
 
-               ret = btrfs_update_inode(trans, root, inode);
+               ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
 
                if (ret) {
                        btrfs_abort_transaction(trans, ret);
@@ -9892,7 +9893,7 @@ static int btrfs_tmpfile(struct inode *dir, struct dentry *dentry, umode_t mode)
        if (ret)
                goto out;
 
-       ret = btrfs_update_inode(trans, root, inode);
+       ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
        if (ret)
                goto out;
        ret = btrfs_orphan_add(trans, BTRFS_I(inode));
index e7ccba83e8a5f1ba54986f34646dac06f9e5e53a..a5dc7cc5d705cca6cd254bc057e5390dfb65e5dc 100644 (file)
@@ -336,7 +336,7 @@ static int btrfs_ioctl_setflags(struct file *file, void __user *arg)
        btrfs_sync_inode_flags_to_i_flags(inode);
        inode_inc_iversion(inode);
        inode->i_ctime = current_time(inode);
-       ret = btrfs_update_inode(trans, root, inode);
+       ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
 
  out_end_trans:
        btrfs_end_transaction(trans);
@@ -479,7 +479,7 @@ static int btrfs_ioctl_fssetxattr(struct file *file, void __user *arg)
        btrfs_sync_inode_flags_to_i_flags(inode);
        inode_inc_iversion(inode);
        inode->i_ctime = current_time(inode);
-       ret = btrfs_update_inode(trans, root, inode);
+       ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
 
        btrfs_end_transaction(trans);
 
@@ -733,7 +733,7 @@ static noinline int create_subvol(struct inode *dir,
        }
 
        btrfs_i_size_write(BTRFS_I(dir), dir->i_size + namelen * 2);
-       ret = btrfs_update_inode(trans, root, dir);
+       ret = btrfs_update_inode(trans, root, BTRFS_I(dir));
        if (ret) {
                btrfs_abort_transaction(trans, ret);
                goto fail;
index 952b8f33619c8513ef2535ac232c7f63cc3b188d..be16acd87588986999ce180de1f733472b9879e8 100644 (file)
@@ -34,7 +34,7 @@ static int clone_finish_inode_update(struct btrfs_trans_handle *trans,
                btrfs_inode_safe_disk_i_size_write(BTRFS_I(inode), 0);
        }
 
-       ret = btrfs_update_inode(trans, root, inode);
+       ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
        if (ret) {
                btrfs_abort_transaction(trans, ret);
                btrfs_end_transaction(trans);
index 360732a939800e99ecb9fcfc106791e5c55cc025..955c9a36cfebe4b62d5d24462520efead1c5096b 100644 (file)
@@ -834,7 +834,7 @@ static noinline int replay_one_extent(struct btrfs_trans_handle *trans,
 
 update_inode:
        btrfs_update_inode_bytes(BTRFS_I(inode), nbytes, drop_args.bytes_found);
-       ret = btrfs_update_inode(trans, root, inode);
+       ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
 out:
        if (inode)
                iput(inode);
@@ -1533,7 +1533,7 @@ static noinline int add_inode_ref(struct btrfs_trans_handle *trans,
                        if (ret)
                                goto out;
 
-                       btrfs_update_inode(trans, root, inode);
+                       btrfs_update_inode(trans, root, BTRFS_I(inode));
                }
 
                ref_ptr = (unsigned long)(ref_ptr + ref_struct_size) + namelen;
@@ -1708,7 +1708,7 @@ static noinline int fixup_inode_link_count(struct btrfs_trans_handle *trans,
 
        if (nlink != inode->i_nlink) {
                set_nlink(inode, nlink);
-               btrfs_update_inode(trans, root, inode);
+               btrfs_update_inode(trans, root, BTRFS_I(inode));
        }
        BTRFS_I(inode)->index_cnt = (u64)-1;
 
@@ -1814,7 +1814,7 @@ static noinline int link_to_fixup_dir(struct btrfs_trans_handle *trans,
                        set_nlink(inode, 1);
                else
                        inc_nlink(inode);
-               ret = btrfs_update_inode(trans, root, inode);
+               ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
        } else if (ret == -EEXIST) {
                ret = 0;
        } else {
@@ -1967,7 +1967,7 @@ out:
        btrfs_release_path(path);
        if (!ret && update_size) {
                btrfs_i_size_write(BTRFS_I(dir), dir->i_size + name_len * 2);
-               ret = btrfs_update_inode(trans, root, dir);
+               ret = btrfs_update_inode(trans, root, BTRFS_I(dir));
        }
        kfree(name);
        iput(dir);
@@ -2602,7 +2602,7 @@ static int replay_one_buffer(struct btrfs_root *log, struct extent_buffer *eb,
                                                        drop_args.bytes_found);
                                        /* Update the inode's nbytes. */
                                        ret = btrfs_update_inode(wc->trans,
-                                                                root, inode);
+                                                       root, BTRFS_I(inode));
                                }
                                iput(inode);
                                if (ret)
index 95d9aebff2c4b0270d7db51f1da30b8247079b6a..f32fe9e39a74c4a3cbe89a83eddea919eecac238 100644 (file)
@@ -239,7 +239,7 @@ int btrfs_setxattr_trans(struct inode *inode, const char *name,
 
        inode_inc_iversion(inode);
        inode->i_ctime = current_time(inode);
-       ret = btrfs_update_inode(trans, root, inode);
+       ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
        BUG_ON(ret);
 out:
        btrfs_end_transaction(trans);
@@ -390,7 +390,7 @@ static int btrfs_xattr_handler_set_prop(const struct xattr_handler *handler,
        if (!ret) {
                inode_inc_iversion(inode);
                inode->i_ctime = current_time(inode);
-               ret = btrfs_update_inode(trans, root, inode);
+               ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
                BUG_ON(ret);
        }