Commit 63370326 authored by Darrick J. Wong's avatar Darrick J. Wong
Browse files

xfs: trace log intent item recovery failures



Add a trace point so that we can capture when a recovered log intent
item fails to recover.

Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
parent da5de110
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -2559,9 +2559,12 @@ xlog_recover_process_intents(
		spin_unlock(&ailp->ail_lock);
		error = lip->li_ops->iop_recover(lip, &capture_list);
		spin_lock(&ailp->ail_lock);
		if (error)
		if (error) {
			trace_xlog_intent_recovery_failed(log->l_mp, error,
					lip->li_ops->iop_recover);
			break;
		}
	}

	xfs_trans_ail_cursor_done(&cur);
	spin_unlock(&ailp->ail_lock);
+18 −0
Original line number Diff line number Diff line
@@ -103,6 +103,24 @@ DEFINE_ATTR_LIST_EVENT(xfs_attr_list_notfound);
DEFINE_ATTR_LIST_EVENT(xfs_attr_leaf_list);
DEFINE_ATTR_LIST_EVENT(xfs_attr_node_list);

TRACE_EVENT(xlog_intent_recovery_failed,
	TP_PROTO(struct xfs_mount *mp, int error, void *function),
	TP_ARGS(mp, error, function),
	TP_STRUCT__entry(
		__field(dev_t, dev)
		__field(int, error)
		__field(void *, function)
	),
	TP_fast_assign(
		__entry->dev = mp->m_super->s_dev;
		__entry->error = error;
		__entry->function = function;
	),
	TP_printk("dev %d:%d error %d function %pS",
		  MAJOR(__entry->dev), MINOR(__entry->dev),
		  __entry->error, __entry->function)
);

DECLARE_EVENT_CLASS(xfs_perag_class,
	TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, int refcount,
		 unsigned long caller_ip),