diff options
author | Christoph Hellwig <hch@infradead.org> | 2008-04-22 03:34:06 -0400 |
---|---|---|
committer | Lachlan McIlroy <lachlan@redback.melbourne.sgi.com> | 2008-04-29 01:54:12 -0400 |
commit | cfa853e47df4fbee441ac0ac3fb592f076233145 (patch) | |
tree | 7e4baafba5ee0f05561580c301c5d360236063f3 /fs/xfs/xfs_dfrag.c | |
parent | 579aa9caf552c639fc78168db4cfe7ffcf00c3b3 (diff) |
[XFS] remove manual lookup from xfs_rename and simplify locking
->rename already gets the target inode passed if it exits. Pass it down to
xfs_rename so that we can avoid looking it up again. Also simplify locking
as the first lock section in xfs_rename can go away now: the isdir is an
invariant over the lifetime of the inode, and new_parent and the nlink
check are namespace topology protected by i_mutex in the VFS. The projid
check needs to move into the second lock section anyway to not be racy.
Also kill the now unused xfs_dir_lookup_int and remove the now-unused
first_locked argumet to xfs_lock_inodes.
SGI-PV: 976035
SGI-Modid: xfs-linux-melb:xfs-kern:30903a
Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_dfrag.c')
-rw-r--r-- | fs/xfs/xfs_dfrag.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/xfs/xfs_dfrag.c b/fs/xfs/xfs_dfrag.c index 3f53fad356a3..5f3647cb9885 100644 --- a/fs/xfs/xfs_dfrag.c +++ b/fs/xfs/xfs_dfrag.c | |||
@@ -162,7 +162,7 @@ xfs_swap_extents( | |||
162 | ips[1] = ip; | 162 | ips[1] = ip; |
163 | } | 163 | } |
164 | 164 | ||
165 | xfs_lock_inodes(ips, 2, 0, lock_flags); | 165 | xfs_lock_inodes(ips, 2, lock_flags); |
166 | locked = 1; | 166 | locked = 1; |
167 | 167 | ||
168 | /* Verify that both files have the same format */ | 168 | /* Verify that both files have the same format */ |
@@ -265,7 +265,7 @@ xfs_swap_extents( | |||
265 | locked = 0; | 265 | locked = 0; |
266 | goto error0; | 266 | goto error0; |
267 | } | 267 | } |
268 | xfs_lock_inodes(ips, 2, 0, XFS_ILOCK_EXCL); | 268 | xfs_lock_inodes(ips, 2, XFS_ILOCK_EXCL); |
269 | 269 | ||
270 | /* | 270 | /* |
271 | * Count the number of extended attribute blocks | 271 | * Count the number of extended attribute blocks |