THe kernel stopped using meaningful types in transaction headers
when delayed logging was introduced. Since then the only transaction
type that reaches the journal is a "Checkpoint" type. Since then,
we've effectivey broken the transaction type printing for newer
kernels, and the current kernels don't even have transaction types
internally. Hence this logprint function is stale, broken, and
causing us problems.
This patch removes the transaction type parsing. If a user needs
this information from logprint, we can still build a binary from a
prior version that correctly decoded the transaction type (e.g.
3.2.1) for that purpose.
Signed-off-by: Hou Tao <houtao1@huawei.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
#define NO_ERROR (0)
static int logBBsize;
-char *trans_type[] = {
- "",
- "SETATTR",
- "SETATTR_SIZE",
- "INACTIVE",
- "CREATE",
- "CREATE_TRUNC",
- "TRUNCATE_FILE",
- "REMOVE",
- "LINK",
- "RENAME",
- "MKDIR",
- "RMDIR",
- "SYMLINK",
- "SET_DMATTRS",
- "GROWFS",
- "STRAT_WRITE",
- "DIOSTRAT",
- "WRITE_SYNC",
- "WRITEID",
- "ADDAFORK",
- "ATTRINVAL",
- "ATRUNCATE",
- "ATTR_SET",
- "ATTR_RM",
- "ATTR_FLAG",
- "CLEAR_AGI_BUCKET",
- "QM_SBCHANGE",
- "DUMMY1",
- "DUMMY2",
- "QM_QUOTAOFF",
- "QM_DQALLOC",
- "QM_SETQLIM",
- "QM_DQCLUSTER",
- "QM_QINOCREATE",
- "QM_QUOTAOFF_END",
- "SB_UNIT",
- "FSYNC_TS",
- "GROWFSRT_ALLOC",
- "GROWFSRT_ZERO",
- "GROWFSRT_FREE",
- "SWAPEXT",
- "SB_COUNT",
- "CHECKPOINT",
- "ICREATE",
-};
typedef struct xlog_split_item {
struct xlog_split_item *si_next;
return 1;
}
h = (xfs_trans_header_t *)cptr;
- printf(_(" type: %s tid: %x num_items: %d\n"),
- trans_type[h->th_type], h->th_tid, h->th_num_items);
+ printf(_(" tid: %x num_items: %d\n"),
+ h->th_tid, h->th_num_items);
return 0;
} /* xlog_print_trans_header */
xlog_recover_print_trans_head(
xlog_recover_t *tr)
{
- printf(_("TRANS: tid:0x%x type:%s #items:%d trans:0x%x q:0x%lx\n"),
- tr->r_log_tid, trans_type[tr->r_theader.th_type],
+ printf(_("TRANS: tid:0x%x #items:%d trans:0x%x q:0x%lx\n"),
+ tr->r_log_tid,
tr->r_theader.th_num_items,
tr->r_theader.th_tid, (long)&tr->r_itemq);
}
extern int print_no_print;
/* exports */
-extern char *trans_type[];
-
extern void xlog_print_lseek(struct xlog *, int, xfs_daddr_t, int);
extern void xfs_log_copy(struct xlog *, int, char *);