On Fri, Sep 09, 2016 at 12:08:27PM +0800, Hou Tao wrote: > For delaylog-enabled fs, the only th_type is XFS_TRANS_CHECKPOINT, > but the value of XFS_TRANS_CHECKPOINT had been change from 42 to 40 > by xfs commit 61e63ec (xfs: consolidate superblock logging functions), > so return trans_type[type] directly will be incorrect. > And there is no flag for delaylog testing, so the suboptimal solution > is to use super v5 flag instead. For pre-v5 fs used by kernel after > commit 61e63ec, the result of xlog_trans_type will still be incorrect. delaylog and v5 superblocks are completely unrelated and so this is incorrect. > before patch: > (1) v5 fs > TRAN: type: SWAPEXT tid: 321be024 num_items: 2 > TRANS: tid:0x772d0805 type:SWAPEXT #items:37 trans:0x772d0805 q:0x559104d71bc0 > > after patch: > (2) v5 fs > TRAN: type: CHECKPOINT tid: 321be024 num_items: 2 > TRANS: tid:0x772d0805 type:SWAPEXT #items:37 trans:0x772d0805 q:0x559104d71bc0 And so v4 filesystems are still incorrect. Indeed, when delaylog is enabled, the only transaction type in the log is "CHECKPOINT" - the whole "trans type" stuff has gone away from the kernel and only exists as this in xfs_log_format.h: /* * The only type valid for th_type in CIL-enabled file system logs: */ #define XFS_TRANS_CHECKPOINT 40 IOWs, most of the logprint code is for printing log information from pre-delaylog kernels. IOWs, for the anyone using a 3.0+ kernel, the "trans type" output from xfs_logprint is completely useless information, so we should probably either put it behind a command line option or remove it completely... Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs