diff options
Diffstat (limited to 'fs/xfs/xfs_inode.c')
| -rw-r--r-- | fs/xfs/xfs_inode.c | 14 | 
1 files changed, 4 insertions, 10 deletions
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index c7c48da97ad..d22b580162c 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -1456,7 +1456,7 @@ xfs_itruncate_finish(  	ASSERT((*tp)->t_flags & XFS_TRANS_PERM_LOG_RES);  	ASSERT(ip->i_transp == *tp);  	ASSERT(ip->i_itemp != NULL); -	ASSERT(ip->i_itemp->ili_flags & XFS_ILI_HOLD); +	ASSERT(ip->i_itemp->ili_lock_flags == 0);  	ntp = *tp; @@ -1608,12 +1608,8 @@ xfs_itruncate_finish(  		 */  		error = xfs_bmap_finish(tp, &free_list, &committed);  		ntp = *tp; -		if (committed) { -			/* link the inode into the next xact in the chain */ -			xfs_trans_ijoin(ntp, ip, -					XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); -			xfs_trans_ihold(ntp, ip); -		} +		if (committed) +			xfs_trans_ijoin(ntp, ip);  		if (error) {  			/* @@ -1642,9 +1638,7 @@ xfs_itruncate_finish(  		error = xfs_trans_commit(*tp, 0);  		*tp = ntp; -		/* link the inode into the next transaction in the chain */ -		xfs_trans_ijoin(ntp, ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); -		xfs_trans_ihold(ntp, ip); +		xfs_trans_ijoin(ntp, ip);  		if (error)  			return error;  |