diff options
author | Ryan Hankins <hankins@sgi.com> | 2006-01-10 23:36:44 -0500 |
---|---|---|
committer | Nathan Scott <nathans@sgi.com> | 2006-01-10 23:36:44 -0500 |
commit | 0733af213f2859f7228229f3ac053c025f57d0d5 (patch) | |
tree | a962211c1640d18b5bf49622edcbd07159fd9f71 /fs/xfs | |
parent | 77a7cce42509461067f49c484aee626f62162fbc (diff) |
[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/xfs')
-rw-r--r-- | fs/xfs/xfs_trans.c | 12 |
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( | |||
1014 | xfs_log_item_t *lip; | 1014 | xfs_log_item_t *lip; |
1015 | int i; | 1015 | int i; |
1016 | #endif | 1016 | #endif |
1017 | xfs_mount_t *mp = tp->t_mountp; | ||
1017 | 1018 | ||
1018 | /* | 1019 | /* |
1019 | * See if the caller is being too lazy to figure out if | 1020 | * See if the caller is being too lazy to figure out if |
@@ -1027,8 +1028,9 @@ xfs_trans_cancel( | |||
1027 | * corruption and decide to give up. | 1028 | * corruption and decide to give up. |
1028 | */ | 1029 | */ |
1029 | if ((tp->t_flags & XFS_TRANS_DIRTY) && | 1030 | if ((tp->t_flags & XFS_TRANS_DIRTY) && |
1030 | !XFS_FORCED_SHUTDOWN(tp->t_mountp)) | 1031 | !XFS_FORCED_SHUTDOWN(mp)) |
1031 | xfs_force_shutdown(tp->t_mountp, XFS_CORRUPT_INCORE); | 1032 | XFS_ERROR_REPORT("xfs_trans_cancel", XFS_ERRLEVEL_LOW, mp); |
1033 | xfs_force_shutdown(mp, XFS_CORRUPT_INCORE); | ||
1032 | #ifdef DEBUG | 1034 | #ifdef DEBUG |
1033 | if (!(flags & XFS_TRANS_ABORT)) { | 1035 | if (!(flags & XFS_TRANS_ABORT)) { |
1034 | licp = &(tp->t_items); | 1036 | licp = &(tp->t_items); |
@@ -1040,7 +1042,7 @@ xfs_trans_cancel( | |||
1040 | } | 1042 | } |
1041 | 1043 | ||
1042 | lip = lidp->lid_item; | 1044 | lip = lidp->lid_item; |
1043 | if (!XFS_FORCED_SHUTDOWN(tp->t_mountp)) | 1045 | if (!XFS_FORCED_SHUTDOWN(mp)) |
1044 | ASSERT(!(lip->li_type == XFS_LI_EFD)); | 1046 | ASSERT(!(lip->li_type == XFS_LI_EFD)); |
1045 | } | 1047 | } |
1046 | licp = licp->lic_next; | 1048 | licp = licp->lic_next; |
@@ -1048,7 +1050,7 @@ xfs_trans_cancel( | |||
1048 | } | 1050 | } |
1049 | #endif | 1051 | #endif |
1050 | xfs_trans_unreserve_and_mod_sb(tp); | 1052 | xfs_trans_unreserve_and_mod_sb(tp); |
1051 | XFS_TRANS_UNRESERVE_AND_MOD_DQUOTS(tp->t_mountp, tp); | 1053 | XFS_TRANS_UNRESERVE_AND_MOD_DQUOTS(mp, tp); |
1052 | 1054 | ||
1053 | if (tp->t_ticket) { | 1055 | if (tp->t_ticket) { |
1054 | if (flags & XFS_TRANS_RELEASE_LOG_RES) { | 1056 | if (flags & XFS_TRANS_RELEASE_LOG_RES) { |
@@ -1057,7 +1059,7 @@ xfs_trans_cancel( | |||
1057 | } else { | 1059 | } else { |
1058 | log_flags = 0; | 1060 | log_flags = 0; |
1059 | } | 1061 | } |
1060 | xfs_log_done(tp->t_mountp, tp->t_ticket, NULL, log_flags); | 1062 | xfs_log_done(mp, tp->t_ticket, NULL, log_flags); |
1061 | } | 1063 | } |
1062 | 1064 | ||
1063 | /* mark this thread as no longer being in a transaction */ | 1065 | /* mark this thread as no longer being in a transaction */ |