Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0733af21 authored by Ryan Hankins's avatar Ryan Hankins Committed by Nathan Scott
Browse files

[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: default avatarRyan Hankins <hankins@sgi.com>
Signed-off-by: default avatarNathan Scott <nathans@sgi.com>
parent 77a7cce4
Loading
Loading
Loading
Loading
+7 −5
Original line number Original line Diff line number Diff line
@@ -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 */