diff options
author | Christoph Hellwig <hch@infradead.org> | 2008-03-05 21:46:12 -0500 |
---|---|---|
committer | Lachlan McIlroy <lachlan@redback.melbourne.sgi.com> | 2008-04-17 21:40:35 -0400 |
commit | a3da789640871c897901c5f766e33be78d56f35a (patch) | |
tree | cbc8cda24404077100e2d029b21531b219affbfb /fs/xfs/xfs_vnodeops.c | |
parent | 979ebab11623894528d4d37b947533ea4e8649d1 (diff) |
[XFS] cleanup vnode use in xfs_link
SGI-PV: 976035
SGI-Modid: xfs-linux-melb:xfs-kern:30547a
Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_vnodeops.c')
-rw-r--r-- | fs/xfs/xfs_vnodeops.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index a42d7fe6a5e8..10d2d22eb037 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c | |||
@@ -2471,12 +2471,10 @@ xfs_remove( | |||
2471 | int | 2471 | int |
2472 | xfs_link( | 2472 | xfs_link( |
2473 | xfs_inode_t *tdp, | 2473 | xfs_inode_t *tdp, |
2474 | bhv_vnode_t *src_vp, | 2474 | xfs_inode_t *sip, |
2475 | bhv_vname_t *dentry) | 2475 | bhv_vname_t *dentry) |
2476 | { | 2476 | { |
2477 | bhv_vnode_t *target_dir_vp = XFS_ITOV(tdp); | ||
2478 | xfs_mount_t *mp = tdp->i_mount; | 2477 | xfs_mount_t *mp = tdp->i_mount; |
2479 | xfs_inode_t *sip = xfs_vtoi(src_vp); | ||
2480 | xfs_trans_t *tp; | 2478 | xfs_trans_t *tp; |
2481 | xfs_inode_t *ips[2]; | 2479 | xfs_inode_t *ips[2]; |
2482 | int error; | 2480 | int error; |
@@ -2489,10 +2487,10 @@ xfs_link( | |||
2489 | int target_namelen; | 2487 | int target_namelen; |
2490 | 2488 | ||
2491 | xfs_itrace_entry(tdp); | 2489 | xfs_itrace_entry(tdp); |
2492 | xfs_itrace_entry(xfs_vtoi(src_vp)); | 2490 | xfs_itrace_entry(sip); |
2493 | 2491 | ||
2494 | target_namelen = VNAMELEN(dentry); | 2492 | target_namelen = VNAMELEN(dentry); |
2495 | ASSERT(!VN_ISDIR(src_vp)); | 2493 | ASSERT(!S_ISDIR(sip->i_d.di_mode)); |
2496 | 2494 | ||
2497 | if (XFS_FORCED_SHUTDOWN(mp)) | 2495 | if (XFS_FORCED_SHUTDOWN(mp)) |
2498 | return XFS_ERROR(EIO); | 2496 | return XFS_ERROR(EIO); |
@@ -2544,8 +2542,8 @@ xfs_link( | |||
2544 | * xfs_trans_cancel will both unlock the inodes and | 2542 | * xfs_trans_cancel will both unlock the inodes and |
2545 | * decrement the associated ref counts. | 2543 | * decrement the associated ref counts. |
2546 | */ | 2544 | */ |
2547 | VN_HOLD(src_vp); | 2545 | IHOLD(sip); |
2548 | VN_HOLD(target_dir_vp); | 2546 | IHOLD(tdp); |
2549 | xfs_trans_ijoin(tp, sip, XFS_ILOCK_EXCL); | 2547 | xfs_trans_ijoin(tp, sip, XFS_ILOCK_EXCL); |
2550 | xfs_trans_ijoin(tp, tdp, XFS_ILOCK_EXCL); | 2548 | xfs_trans_ijoin(tp, tdp, XFS_ILOCK_EXCL); |
2551 | 2549 | ||