summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorRyan Hankins <hankins@sgi.com>2006-01-11 15:36:44 +1100
committerNathan Scott <nathans@sgi.com>2006-01-11 15:36:44 +1100
commit0733af213f2859f7228229f3ac053c025f57d0d5 (patch)
treea962211c1640d18b5bf49622edcbd07159fd9f71 /fs
parent77a7cce42509461067f49c484aee626f62162fbc (diff)
downloadlinux-0733af213f2859f7228229f3ac053c025f57d0d5.tar.bz2
[XFS] Add a stack trace in the case of xfs_forced_shutdown.
SGI-PV: 929558 SGI-Modid: xfs-linux-melb:xfs-kern:203701a Signed-off-by: Ryan Hankins <hankins@sgi.com> Signed-off-by: Nathan Scott <nathans@sgi.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/xfs/xfs_trans.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c
index 279e043d7323..2eb6027762f2 100644
--- a/fs/xfs/xfs_trans.c
+++ b/fs/xfs/xfs_trans.c
@@ -1014,6 +1014,7 @@ xfs_trans_cancel(
xfs_log_item_t *lip;
int i;
#endif
+ xfs_mount_t *mp = tp->t_mountp;
/*
* See if the caller is being too lazy to figure out if
@@ -1027,8 +1028,9 @@ xfs_trans_cancel(
* corruption and decide to give up.
*/
if ((tp->t_flags & XFS_TRANS_DIRTY) &&
- !XFS_FORCED_SHUTDOWN(tp->t_mountp))
- xfs_force_shutdown(tp->t_mountp, XFS_CORRUPT_INCORE);
+ !XFS_FORCED_SHUTDOWN(mp))
+ XFS_ERROR_REPORT("xfs_trans_cancel", XFS_ERRLEVEL_LOW, mp);
+ xfs_force_shutdown(mp, XFS_CORRUPT_INCORE);
#ifdef DEBUG
if (!(flags & XFS_TRANS_ABORT)) {
licp = &(tp->t_items);
@@ -1040,7 +1042,7 @@ xfs_trans_cancel(
}
lip = lidp->lid_item;
- if (!XFS_FORCED_SHUTDOWN(tp->t_mountp))
+ if (!XFS_FORCED_SHUTDOWN(mp))
ASSERT(!(lip->li_type == XFS_LI_EFD));
}
licp = licp->lic_next;
@@ -1048,7 +1050,7 @@ xfs_trans_cancel(
}
#endif
xfs_trans_unreserve_and_mod_sb(tp);
- XFS_TRANS_UNRESERVE_AND_MOD_DQUOTS(tp->t_mountp, tp);
+ XFS_TRANS_UNRESERVE_AND_MOD_DQUOTS(mp, tp);
if (tp->t_ticket) {
if (flags & XFS_TRANS_RELEASE_LOG_RES) {
@@ -1057,7 +1059,7 @@ xfs_trans_cancel(
} else {
log_flags = 0;
}
- xfs_log_done(tp->t_mountp, tp->t_ticket, NULL, log_flags);
+ xfs_log_done(mp, tp->t_ticket, NULL, log_flags);
}
/* mark this thread as no longer being in a transaction */