summaryrefslogtreecommitdiffstats
path: root/fs/xfs
diff options
context:
space:
mode:
authorJesper Juhl <jesper.juhl@gmail.com>2007-06-28 08:43:14 +0200
committerTim Shimmin <tes@chook.melbourne.sgi.com>2007-07-14 07:36:17 +0200
commit87ae3c2411cfd280e8289e232b718fae9f63950b (patch)
tree2d19a572a2ab205265306e420fbe4ca1b94fc135 /fs/xfs
parent[XFS] Use do_div() on 64 bit types. (diff)
downloadlinux-87ae3c2411cfd280e8289e232b718fae9f63950b.tar.xz
linux-87ae3c2411cfd280e8289e232b718fae9f63950b.zip
[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(
error = xfs_itruncate_start(ip, XFS_ITRUNC_DEFINITE,
ip->i_size);
if (error) {
+ xfs_trans_cancel(tp, 0);
if (use_iolock)
xfs_iunlock(ip, XFS_IOLOCK_EXCL);
return error;
@@ -1687,6 +1688,7 @@ xfs_inactive(
error = xfs_itruncate_start(ip, XFS_ITRUNC_DEFINITE, 0);
if (error) {
+ xfs_trans_cancel(tp, 0);
xfs_iunlock(ip, XFS_IOLOCK_EXCL);
return VN_INACTIVE_CACHE;
}