]> Pileus Git - ~andy/linux/blobdiff - fs/ext4/move_extent.c
Linux 3.14
[~andy/linux] / fs / ext4 / move_extent.c
index 7fa4d855dbd5e65e373b8222800f2a5d6bc5520c..773b503bd18cf840a048788b4c536717fafbb7e6 100644 (file)
@@ -1202,42 +1202,6 @@ mext_check_arguments(struct inode *orig_inode,
        return 0;
 }
 
-/**
- * ext4_inode_double_lock - Lock i_mutex on both @inode1 and @inode2
- *
- * @inode1:    the inode structure
- * @inode2:    the inode structure
- *
- * Lock two inodes' i_mutex
- */
-void
-ext4_inode_double_lock(struct inode *inode1, struct inode *inode2)
-{
-       BUG_ON(inode1 == inode2);
-       if (inode1 < inode2) {
-               mutex_lock_nested(&inode1->i_mutex, I_MUTEX_PARENT);
-               mutex_lock_nested(&inode2->i_mutex, I_MUTEX_CHILD);
-       } else {
-               mutex_lock_nested(&inode2->i_mutex, I_MUTEX_PARENT);
-               mutex_lock_nested(&inode1->i_mutex, I_MUTEX_CHILD);
-       }
-}
-
-/**
- * ext4_inode_double_unlock - Release i_mutex on both @inode1 and @inode2
- *
- * @inode1:     the inode that is released first
- * @inode2:     the inode that is released second
- *
- */
-
-void
-ext4_inode_double_unlock(struct inode *inode1, struct inode *inode2)
-{
-       mutex_unlock(&inode1->i_mutex);
-       mutex_unlock(&inode2->i_mutex);
-}
-
 /**
  * ext4_move_extents - Exchange the specified range of a file
  *
@@ -1327,7 +1291,7 @@ ext4_move_extents(struct file *o_filp, struct file *d_filp,
                return -EINVAL;
        }
        /* Protect orig and donor inodes against a truncate */
-       ext4_inode_double_lock(orig_inode, donor_inode);
+       lock_two_nondirectories(orig_inode, donor_inode);
 
        /* Wait for all existing dio workers */
        ext4_inode_block_unlocked_dio(orig_inode);
@@ -1535,7 +1499,7 @@ out:
        ext4_double_up_write_data_sem(orig_inode, donor_inode);
        ext4_inode_resume_unlocked_dio(orig_inode);
        ext4_inode_resume_unlocked_dio(donor_inode);
-       ext4_inode_double_unlock(orig_inode, donor_inode);
+       unlock_two_nondirectories(orig_inode, donor_inode);
 
        return ret;
 }