Loading fs/xfs/xfs_error.h +12 −0 Original line number Diff line number Diff line Loading @@ -75,4 +75,16 @@ extern int xfs_errortag_clearall(struct xfs_mount *mp); #define XFS_PTAG_FSBLOCK_ZERO 0x00000080 #define XFS_PTAG_VERIFIER_ERROR 0x00000100 #define XFS_PTAG_STRINGS \ { XFS_NO_PTAG, "none" }, \ { XFS_PTAG_IFLUSH, "iflush" }, \ { XFS_PTAG_LOGRES, "logres" }, \ { XFS_PTAG_AILDELETE, "aildelete" }, \ { XFS_PTAG_ERROR_REPORT , "error_report" }, \ { XFS_PTAG_SHUTDOWN_CORRUPT, "corrupt" }, \ { XFS_PTAG_SHUTDOWN_IOERROR, "ioerror" }, \ { XFS_PTAG_SHUTDOWN_LOGERROR, "logerror" }, \ { XFS_PTAG_FSBLOCK_ZERO, "fsb_zero" }, \ { XFS_PTAG_VERIFIER_ERROR, "verifier" } #endif /* __XFS_ERROR_H__ */ fs/xfs/xfs_fsops.c +3 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include "xfs_log.h" #include "xfs_ag.h" #include "xfs_ag_resv.h" #include "xfs_trace.h" /* * Write new AG headers to disk. Non-transactional, but need to be Loading Loading @@ -551,6 +552,8 @@ xfs_do_force_shutdown( why = "Metadata I/O Error"; } trace_xfs_force_shutdown(mp, tag, flags, fname, lnnum); xfs_alert_tag(mp, tag, "%s (0x%x) detected at %pS (%s:%d). Shutting down filesystem.", why, flags, __return_address, fname, lnnum); Loading fs/xfs/xfs_mount.h +6 −0 Original line number Diff line number Diff line Loading @@ -331,6 +331,12 @@ void xfs_do_force_shutdown(struct xfs_mount *mp, int flags, char *fname, #define SHUTDOWN_FORCE_UMOUNT 0x0004 /* shutdown from a forced unmount */ #define SHUTDOWN_CORRUPT_INCORE 0x0008 /* corrupt in-memory data structures */ #define XFS_SHUTDOWN_STRINGS \ { SHUTDOWN_META_IO_ERROR, "metadata_io" }, \ { SHUTDOWN_LOG_IO_ERROR, "log_io" }, \ { SHUTDOWN_FORCE_UMOUNT, "force_umount" }, \ { SHUTDOWN_CORRUPT_INCORE, "corruption" } /* * Flags for xfs_mountfs */ Loading fs/xfs/xfs_trace.c +1 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ #include "xfs_icache.h" #include "xfs_ag.h" #include "xfs_ag_resv.h" #include "xfs_error.h" /* * We include this last to have the helpers above available for the trace Loading fs/xfs/xfs_trace.h +27 −0 Original line number Diff line number Diff line Loading @@ -4096,6 +4096,33 @@ DEFINE_DAS_STATE_EVENT(xfs_attr_set_iter_return); DEFINE_DAS_STATE_EVENT(xfs_attr_node_addname_return); DEFINE_DAS_STATE_EVENT(xfs_attr_remove_iter_return); DEFINE_DAS_STATE_EVENT(xfs_attr_rmtval_remove_return); TRACE_EVENT(xfs_force_shutdown, TP_PROTO(struct xfs_mount *mp, int ptag, int flags, const char *fname, int line_num), TP_ARGS(mp, ptag, flags, fname, line_num), TP_STRUCT__entry( __field(dev_t, dev) __field(int, ptag) __field(int, flags) __string(fname, fname) __field(int, line_num) ), TP_fast_assign( __entry->dev = mp->m_super->s_dev; __entry->ptag = ptag; __entry->flags = flags; __assign_str(fname, fname); __entry->line_num = line_num; ), TP_printk("dev %d:%d tag %s flags %s file %s line_num %d", MAJOR(__entry->dev), MINOR(__entry->dev), __print_flags(__entry->ptag, "|", XFS_PTAG_STRINGS), __print_flags(__entry->flags, "|", XFS_SHUTDOWN_STRINGS), __get_str(fname), __entry->line_num) ); #endif /* _TRACE_XFS_H */ #undef TRACE_INCLUDE_PATH Loading Loading
fs/xfs/xfs_error.h +12 −0 Original line number Diff line number Diff line Loading @@ -75,4 +75,16 @@ extern int xfs_errortag_clearall(struct xfs_mount *mp); #define XFS_PTAG_FSBLOCK_ZERO 0x00000080 #define XFS_PTAG_VERIFIER_ERROR 0x00000100 #define XFS_PTAG_STRINGS \ { XFS_NO_PTAG, "none" }, \ { XFS_PTAG_IFLUSH, "iflush" }, \ { XFS_PTAG_LOGRES, "logres" }, \ { XFS_PTAG_AILDELETE, "aildelete" }, \ { XFS_PTAG_ERROR_REPORT , "error_report" }, \ { XFS_PTAG_SHUTDOWN_CORRUPT, "corrupt" }, \ { XFS_PTAG_SHUTDOWN_IOERROR, "ioerror" }, \ { XFS_PTAG_SHUTDOWN_LOGERROR, "logerror" }, \ { XFS_PTAG_FSBLOCK_ZERO, "fsb_zero" }, \ { XFS_PTAG_VERIFIER_ERROR, "verifier" } #endif /* __XFS_ERROR_H__ */
fs/xfs/xfs_fsops.c +3 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include "xfs_log.h" #include "xfs_ag.h" #include "xfs_ag_resv.h" #include "xfs_trace.h" /* * Write new AG headers to disk. Non-transactional, but need to be Loading Loading @@ -551,6 +552,8 @@ xfs_do_force_shutdown( why = "Metadata I/O Error"; } trace_xfs_force_shutdown(mp, tag, flags, fname, lnnum); xfs_alert_tag(mp, tag, "%s (0x%x) detected at %pS (%s:%d). Shutting down filesystem.", why, flags, __return_address, fname, lnnum); Loading
fs/xfs/xfs_mount.h +6 −0 Original line number Diff line number Diff line Loading @@ -331,6 +331,12 @@ void xfs_do_force_shutdown(struct xfs_mount *mp, int flags, char *fname, #define SHUTDOWN_FORCE_UMOUNT 0x0004 /* shutdown from a forced unmount */ #define SHUTDOWN_CORRUPT_INCORE 0x0008 /* corrupt in-memory data structures */ #define XFS_SHUTDOWN_STRINGS \ { SHUTDOWN_META_IO_ERROR, "metadata_io" }, \ { SHUTDOWN_LOG_IO_ERROR, "log_io" }, \ { SHUTDOWN_FORCE_UMOUNT, "force_umount" }, \ { SHUTDOWN_CORRUPT_INCORE, "corruption" } /* * Flags for xfs_mountfs */ Loading
fs/xfs/xfs_trace.c +1 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ #include "xfs_icache.h" #include "xfs_ag.h" #include "xfs_ag_resv.h" #include "xfs_error.h" /* * We include this last to have the helpers above available for the trace Loading
fs/xfs/xfs_trace.h +27 −0 Original line number Diff line number Diff line Loading @@ -4096,6 +4096,33 @@ DEFINE_DAS_STATE_EVENT(xfs_attr_set_iter_return); DEFINE_DAS_STATE_EVENT(xfs_attr_node_addname_return); DEFINE_DAS_STATE_EVENT(xfs_attr_remove_iter_return); DEFINE_DAS_STATE_EVENT(xfs_attr_rmtval_remove_return); TRACE_EVENT(xfs_force_shutdown, TP_PROTO(struct xfs_mount *mp, int ptag, int flags, const char *fname, int line_num), TP_ARGS(mp, ptag, flags, fname, line_num), TP_STRUCT__entry( __field(dev_t, dev) __field(int, ptag) __field(int, flags) __string(fname, fname) __field(int, line_num) ), TP_fast_assign( __entry->dev = mp->m_super->s_dev; __entry->ptag = ptag; __entry->flags = flags; __assign_str(fname, fname); __entry->line_num = line_num; ), TP_printk("dev %d:%d tag %s flags %s file %s line_num %d", MAJOR(__entry->dev), MINOR(__entry->dev), __print_flags(__entry->ptag, "|", XFS_PTAG_STRINGS), __print_flags(__entry->flags, "|", XFS_SHUTDOWN_STRINGS), __get_str(fname), __entry->line_num) ); #endif /* _TRACE_XFS_H */ #undef TRACE_INCLUDE_PATH Loading