Skip to content

Commit

Permalink
use xfs_trans_ijoin in xfs_trans_iget
Browse files Browse the repository at this point in the history
Use xfs_trans_ijoin in xfs_trans_iget in case we need to join an inode into
a transaction instead of opencoding it.  Based on a discussion with and an
incomplete patch from Niv Sardi.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <david@fromorbit.com>
Signed-off-by: Niv Sardi <xaiki@sgi.com>
  • Loading branch information
Christoph Hellwig authored and Niv Sardi committed Dec 4, 2008
1 parent b56757b commit 070c461
Showing 1 changed file with 1 addition and 29 deletions.
30 changes: 1 addition & 29 deletions fs/xfs/xfs_trans_inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,6 @@ xfs_trans_iget(
{
int error;
xfs_inode_t *ip;
xfs_inode_log_item_t *iip;

/*
* If the transaction pointer is NULL, just call the normal
Expand Down Expand Up @@ -138,34 +137,7 @@ xfs_trans_iget(
}
ASSERT(ip != NULL);

/*
* Get a log_item_desc to point at the new item.
*/
if (ip->i_itemp == NULL)
xfs_inode_item_init(ip, mp);
iip = ip->i_itemp;
(void) xfs_trans_add_item(tp, (xfs_log_item_t *)(iip));

xfs_trans_inode_broot_debug(ip);

/*
* If the IO lock has been acquired, mark that in
* the inode log item so we'll know to unlock it
* when the transaction commits.
*/
ASSERT(iip->ili_flags == 0);
if (lock_flags & XFS_IOLOCK_EXCL) {
iip->ili_flags |= XFS_ILI_IOLOCKED_EXCL;
} else if (lock_flags & XFS_IOLOCK_SHARED) {
iip->ili_flags |= XFS_ILI_IOLOCKED_SHARED;
}

/*
* Initialize i_transp so we can find it with xfs_inode_incore()
* above.
*/
ip->i_transp = tp;

xfs_trans_ijoin(tp, ip, lock_flags);
*ipp = ip;
return 0;
}
Expand Down

0 comments on commit 070c461

Please sign in to comment.