[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>
This commit is contained in:
Ryan Hankins 2006-01-11 15:36:44 +11:00 committed by Nathan Scott
parent 77a7cce425
commit 0733af213f

View File

@ -1014,6 +1014,7 @@ xfs_trans_cancel(
xfs_log_item_t *lip; xfs_log_item_t *lip;
int i; int i;
#endif #endif
xfs_mount_t *mp = tp->t_mountp;
/* /*
* See if the caller is being too lazy to figure out if * 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. * corruption and decide to give up.
*/ */
if ((tp->t_flags & XFS_TRANS_DIRTY) && if ((tp->t_flags & XFS_TRANS_DIRTY) &&
!XFS_FORCED_SHUTDOWN(tp->t_mountp)) !XFS_FORCED_SHUTDOWN(mp))
xfs_force_shutdown(tp->t_mountp, XFS_CORRUPT_INCORE); XFS_ERROR_REPORT("xfs_trans_cancel", XFS_ERRLEVEL_LOW, mp);
xfs_force_shutdown(mp, XFS_CORRUPT_INCORE);
#ifdef DEBUG #ifdef DEBUG
if (!(flags & XFS_TRANS_ABORT)) { if (!(flags & XFS_TRANS_ABORT)) {
licp = &(tp->t_items); licp = &(tp->t_items);
@ -1040,7 +1042,7 @@ xfs_trans_cancel(
} }
lip = lidp->lid_item; lip = lidp->lid_item;
if (!XFS_FORCED_SHUTDOWN(tp->t_mountp)) if (!XFS_FORCED_SHUTDOWN(mp))
ASSERT(!(lip->li_type == XFS_LI_EFD)); ASSERT(!(lip->li_type == XFS_LI_EFD));
} }
licp = licp->lic_next; licp = licp->lic_next;
@ -1048,7 +1050,7 @@ xfs_trans_cancel(
} }
#endif #endif
xfs_trans_unreserve_and_mod_sb(tp); 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 (tp->t_ticket) {
if (flags & XFS_TRANS_RELEASE_LOG_RES) { if (flags & XFS_TRANS_RELEASE_LOG_RES) {
@ -1057,7 +1059,7 @@ xfs_trans_cancel(
} else { } else {
log_flags = 0; 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 */ /* mark this thread as no longer being in a transaction */