btrfs: Make btrfs_log_new_name take btrfs_inode
authorNikolay Borisov <n.borisov.lkml@gmail.com>
Tue, 17 Jan 2017 22:31:31 +0000 (00:31 +0200)
committerDavid Sterba <dsterba@suse.com>
Tue, 14 Feb 2017 14:50:54 +0000 (15:50 +0100)
Signed-off-by: Nikolay Borisov <n.borisov.lkml@gmail.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/inode.c
fs/btrfs/tree-log.c
fs/btrfs/tree-log.h

index 45134a1519a6af371647aa815edac194d2dcd214..fe8da3974ff8e4a9d4cee98b162113faa042ba87 100644 (file)
@@ -6597,7 +6597,7 @@ static int btrfs_link(struct dentry *old_dentry, struct inode *dir,
                                goto fail;
                }
                d_instantiate(dentry, inode);
-               btrfs_log_new_name(trans, inode, NULL, parent);
+               btrfs_log_new_name(trans, BTRFS_I(inode), NULL, parent);
        }
 
        btrfs_balance_delayed_items(fs_info);
@@ -9654,13 +9654,13 @@ static int btrfs_rename_exchange(struct inode *old_dir,
 
        if (root_log_pinned) {
                parent = new_dentry->d_parent;
-               btrfs_log_new_name(trans, old_inode, old_dir, parent);
+               btrfs_log_new_name(trans, BTRFS_I(old_inode), BTRFS_I(old_dir), parent);
                btrfs_end_log_trans(root);
                root_log_pinned = false;
        }
        if (dest_log_pinned) {
                parent = old_dentry->d_parent;
-               btrfs_log_new_name(trans, new_inode, new_dir, parent);
+               btrfs_log_new_name(trans, BTRFS_I(new_inode), BTRFS_I(new_dir), parent);
                btrfs_end_log_trans(dest);
                dest_log_pinned = false;
        }
@@ -9926,7 +9926,7 @@ static int btrfs_rename(struct inode *old_dir, struct dentry *old_dentry,
        if (log_pinned) {
                struct dentry *parent = new_dentry->d_parent;
 
-               btrfs_log_new_name(trans, old_inode, old_dir, parent);
+               btrfs_log_new_name(trans, BTRFS_I(old_inode), BTRFS_I(old_dir), parent);
                btrfs_end_log_trans(root);
                log_pinned = false;
        }
index 37adad5dabd6183d5d0b6e0827e8e2f024e27594..df822908f2be23a3c201e007a82ef59a4e4e566b 100644 (file)
@@ -5809,30 +5809,28 @@ void btrfs_record_snapshot_destroy(struct btrfs_trans_handle *trans,
  * full transaction commit is required.
  */
 int btrfs_log_new_name(struct btrfs_trans_handle *trans,
-                       struct inode *inode, struct inode *old_dir,
+                       struct btrfs_inode *inode, struct btrfs_inode *old_dir,
                        struct dentry *parent)
 {
-       struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
-       struct btrfs_root * root = BTRFS_I(inode)->root;
+       struct btrfs_fs_info *fs_info = btrfs_sb(inode->vfs_inode.i_sb);
+       struct btrfs_root * root = inode->root;
 
        /*
         * this will force the logging code to walk the dentry chain
         * up for the file
         */
-       if (S_ISREG(inode->i_mode))
-               BTRFS_I(inode)->last_unlink_trans = trans->transid;
+       if (S_ISREG(inode->vfs_inode.i_mode))
+               inode->last_unlink_trans = trans->transid;
 
        /*
         * if this inode hasn't been logged and directory we're renaming it
         * from hasn't been logged, we don't need to log it
         */
-       if (BTRFS_I(inode)->logged_trans <=
-           fs_info->last_trans_committed &&
-           (!old_dir || BTRFS_I(old_dir)->logged_trans <=
-                   fs_info->last_trans_committed))
+       if (inode->logged_trans <= fs_info->last_trans_committed &&
+           (!old_dir || old_dir->logged_trans <= fs_info->last_trans_committed))
                return 0;
 
-       return btrfs_log_inode_parent(trans, root, inode, parent, 0,
+       return btrfs_log_inode_parent(trans, root, &inode->vfs_inode, parent, 0,
                                      LLONG_MAX, 1, NULL);
 }
 
index 9b5bf904d5111a3a827c1cc36ae5b879b660b4e9..7f34d2d77865ef92b0ed45e0743d918c5287ee61 100644 (file)
@@ -85,6 +85,6 @@ void btrfs_record_unlink_dir(struct btrfs_trans_handle *trans,
 void btrfs_record_snapshot_destroy(struct btrfs_trans_handle *trans,
                                   struct btrfs_inode *dir);
 int btrfs_log_new_name(struct btrfs_trans_handle *trans,
-                       struct inode *inode, struct inode *old_dir,
+                       struct btrfs_inode *inode, struct btrfs_inode *old_dir,
                        struct dentry *parent);
 #endif