btrfs: Make btrfs_inode_in_log take btrfs_inode
authorNikolay Borisov <n.borisov.lkml@gmail.com>
Tue, 17 Jan 2017 22:31:30 +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/btrfs_inode.h
fs/btrfs/file.c
fs/btrfs/inode.c
fs/btrfs/tree-log.c

index 4fed080..b2dde0e 100644 (file)
@@ -255,16 +255,14 @@ static inline bool btrfs_is_free_space_inode(struct inode *inode)
        return false;
 }
 
-static inline int btrfs_inode_in_log(struct inode *inode, u64 generation)
+static inline int btrfs_inode_in_log(struct btrfs_inode *inode, u64 generation)
 {
        int ret = 0;
 
-       spin_lock(&BTRFS_I(inode)->lock);
-       if (BTRFS_I(inode)->logged_trans == generation &&
-           BTRFS_I(inode)->last_sub_trans <=
-           BTRFS_I(inode)->last_log_commit &&
-           BTRFS_I(inode)->last_sub_trans <=
-           BTRFS_I(inode)->root->last_log_commit) {
+       spin_lock(&inode->lock);
+       if (inode->logged_trans == generation &&
+           inode->last_sub_trans <= inode->last_log_commit &&
+           inode->last_sub_trans <= inode->root->last_log_commit) {
                /*
                 * After a ranged fsync we might have left some extent maps
                 * (that fall outside the fsync's range). So return false
@@ -272,10 +270,10 @@ static inline int btrfs_inode_in_log(struct inode *inode, u64 generation)
                 * will be called and process those extent maps.
                 */
                smp_mb();
-               if (list_empty(&BTRFS_I(inode)->extent_tree.modified_extents))
+               if (list_empty(&inode->extent_tree.modified_extents))
                        ret = 1;
        }
-       spin_unlock(&BTRFS_I(inode)->lock);
+       spin_unlock(&inode->lock);
        return ret;
 }
 
index 0d32f45..149b79b 100644 (file)
@@ -2062,7 +2062,7 @@ int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
         * commit does not start nor waits for ordered extents to complete.
         */
        smp_mb();
-       if (btrfs_inode_in_log(inode, fs_info->generation) ||
+       if (btrfs_inode_in_log(BTRFS_I(inode), fs_info->generation) ||
            (full_sync && BTRFS_I(inode)->last_trans <=
             fs_info->last_trans_committed) ||
            (!btrfs_have_ordered_extents_in_range(inode, start, len) &&
index 0455ee2..45134a1 100644 (file)
@@ -9677,11 +9677,11 @@ out_fail:
         * allow the tasks to sync it.
         */
        if (ret && (root_log_pinned || dest_log_pinned)) {
-               if (btrfs_inode_in_log(old_dir, fs_info->generation) ||
-                   btrfs_inode_in_log(new_dir, fs_info->generation) ||
-                   btrfs_inode_in_log(old_inode, fs_info->generation) ||
+               if (btrfs_inode_in_log(BTRFS_I(old_dir), fs_info->generation) ||
+                   btrfs_inode_in_log(BTRFS_I(new_dir), fs_info->generation) ||
+                   btrfs_inode_in_log(BTRFS_I(old_inode), fs_info->generation) ||
                    (new_inode &&
-                    btrfs_inode_in_log(new_inode, fs_info->generation)))
+                    btrfs_inode_in_log(BTRFS_I(new_inode), fs_info->generation)))
                        btrfs_set_log_full_commit(fs_info, trans);
 
                if (root_log_pinned) {
@@ -9953,11 +9953,11 @@ out_fail:
         * allow the tasks to sync it.
         */
        if (ret && log_pinned) {
-               if (btrfs_inode_in_log(old_dir, fs_info->generation) ||
-                   btrfs_inode_in_log(new_dir, fs_info->generation) ||
-                   btrfs_inode_in_log(old_inode, fs_info->generation) ||
+               if (btrfs_inode_in_log(BTRFS_I(old_dir), fs_info->generation) ||
+                   btrfs_inode_in_log(BTRFS_I(new_dir), fs_info->generation) ||
+                   btrfs_inode_in_log(BTRFS_I(old_inode), fs_info->generation) ||
                    (new_inode &&
-                    btrfs_inode_in_log(new_inode, fs_info->generation)))
+                    btrfs_inode_in_log(BTRFS_I(new_inode), fs_info->generation)))
                        btrfs_set_log_full_commit(fs_info, trans);
 
                btrfs_end_log_trans(root);
index 581d311..37adad5 100644 (file)
@@ -5237,7 +5237,7 @@ process_leaf:
                                goto next_dir_inode;
                        }
 
-                       if (btrfs_inode_in_log(di_inode, trans->transid)) {
+                       if (btrfs_inode_in_log(BTRFS_I(di_inode), trans->transid)) {
                                iput(di_inode);
                                break;
                        }
@@ -5436,7 +5436,7 @@ static int btrfs_log_inode_parent(struct btrfs_trans_handle *trans,
        if (ret)
                goto end_no_trans;
 
-       if (btrfs_inode_in_log(inode, trans->transid)) {
+       if (btrfs_inode_in_log(BTRFS_I(inode), trans->transid)) {
                ret = BTRFS_NO_LOG_SYNC;
                goto end_no_trans;
        }