aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs
diff options
context:
space:
mode:
authorJesper Juhl <jesper.juhl@gmail.com>2007-06-28 02:43:14 -0400
committerTim Shimmin <tes@chook.melbourne.sgi.com>2007-07-14 01:36:17 -0400
commit87ae3c2411cfd280e8289e232b718fae9f63950b (patch)
tree2d19a572a2ab205265306e420fbe4ca1b94fc135 /fs/xfs
parent39726be2a2e6e61f352852da2c3a807773e33346 (diff)
[XFS] Cancel transactions on xfs_itruncate_start error.
SGI-PV: 966502 SGI-Modid: xfs-linux-melb:xfs-kern:28943a Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Signed-off-by: David Chinner <dgc@sgi.com> Signed-off-by: Tim Shimmin <tes@sgi.com>
Diffstat (limited to 'fs/xfs')
-rw-r--r--fs/xfs/xfs_vnodeops.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c
index 8c830a48165a..5dbca95598e0 100644
--- a/fs/xfs/xfs_vnodeops.c
+++ b/fs/xfs/xfs_vnodeops.c
@@ -1263,6 +1263,7 @@ xfs_free_eofblocks(
1263 error = xfs_itruncate_start(ip, XFS_ITRUNC_DEFINITE, 1263 error = xfs_itruncate_start(ip, XFS_ITRUNC_DEFINITE,
1264 ip->i_size); 1264 ip->i_size);
1265 if (error) { 1265 if (error) {
1266 xfs_trans_cancel(tp, 0);
1266 if (use_iolock) 1267 if (use_iolock)
1267 xfs_iunlock(ip, XFS_IOLOCK_EXCL); 1268 xfs_iunlock(ip, XFS_IOLOCK_EXCL);
1268 return error; 1269 return error;
@@ -1687,6 +1688,7 @@ xfs_inactive(
1687 1688
1688 error = xfs_itruncate_start(ip, XFS_ITRUNC_DEFINITE, 0); 1689 error = xfs_itruncate_start(ip, XFS_ITRUNC_DEFINITE, 0);
1689 if (error) { 1690 if (error) {
1691 xfs_trans_cancel(tp, 0);
1690 xfs_iunlock(ip, XFS_IOLOCK_EXCL); 1692 xfs_iunlock(ip, XFS_IOLOCK_EXCL);
1691 return VN_INACTIVE_CACHE; 1693 return VN_INACTIVE_CACHE;
1692 } 1694 }