btrfs: make btrfs_delayed_update_inode take btrfs_inode
authorNikolay Borisov <nborisov@suse.com>
Mon, 2 Nov 2020 14:48:57 +0000 (16:48 +0200)
committerDavid Sterba <dsterba@suse.com>
Tue, 8 Dec 2020 14:54:10 +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/delayed-inode.c
fs/btrfs/delayed-inode.h
fs/btrfs/inode.c

index b2a883ec8e7e97ff659f9b17c1627e727cbf1486..70c0340d839cb35858721e01356f6ebe4d78a24c 100644 (file)
@@ -1815,27 +1815,29 @@ int btrfs_fill_inode(struct inode *inode, u32 *rdev)
 }
 
 int btrfs_delayed_update_inode(struct btrfs_trans_handle *trans,
-                              struct btrfs_root *root, struct inode *inode)
+                              struct btrfs_root *root,
+                              struct btrfs_inode *inode)
 {
        struct btrfs_delayed_node *delayed_node;
        int ret = 0;
 
-       delayed_node = btrfs_get_or_create_delayed_node(BTRFS_I(inode));
+       delayed_node = btrfs_get_or_create_delayed_node(inode);
        if (IS_ERR(delayed_node))
                return PTR_ERR(delayed_node);
 
        mutex_lock(&delayed_node->mutex);
        if (test_bit(BTRFS_DELAYED_NODE_INODE_DIRTY, &delayed_node->flags)) {
-               fill_stack_inode_item(trans, &delayed_node->inode_item, inode);
+               fill_stack_inode_item(trans, &delayed_node->inode_item,
+                                     &inode->vfs_inode);
                goto release_node;
        }
 
-       ret = btrfs_delayed_inode_reserve_metadata(trans, root, BTRFS_I(inode),
+       ret = btrfs_delayed_inode_reserve_metadata(trans, root, inode,
                                                   delayed_node);
        if (ret)
                goto release_node;
 
-       fill_stack_inode_item(trans, &delayed_node->inode_item, inode);
+       fill_stack_inode_item(trans, &delayed_node->inode_item, &inode->vfs_inode);
        set_bit(BTRFS_DELAYED_NODE_INODE_DIRTY, &delayed_node->flags);
        delayed_node->count++;
        atomic_inc(&root->fs_info->delayed_root->items);
index ca96ef007d8f2d9d689091fae4894dda6d1292f5..b2412160c5bc90e4321118ae45be5c8968e46a97 100644 (file)
@@ -110,7 +110,8 @@ int btrfs_commit_inode_delayed_inode(struct btrfs_inode *inode);
 
 
 int btrfs_delayed_update_inode(struct btrfs_trans_handle *trans,
-                              struct btrfs_root *root, struct inode *inode);
+                              struct btrfs_root *root,
+                              struct btrfs_inode *inode);
 int btrfs_fill_inode(struct inode *inode, u32 *rdev);
 int btrfs_delayed_delete_inode_ref(struct btrfs_inode *inode);
 
index 0e0a1c8c12555a071724e6e7445b1f445106aacd..32250919f177af8c95acd2443e7175cd10418be0 100644 (file)
@@ -3674,7 +3674,7 @@ noinline int btrfs_update_inode(struct btrfs_trans_handle *trans,
            && !test_bit(BTRFS_FS_LOG_RECOVERING, &fs_info->flags)) {
                btrfs_update_root_times(trans, root);
 
-               ret = btrfs_delayed_update_inode(trans, root, inode);
+               ret = btrfs_delayed_update_inode(trans, root, BTRFS_I(inode));
                if (!ret)
                        btrfs_set_inode_last_trans(trans, BTRFS_I(inode));
                return ret;