Re: [PATCH 11/8] xfs_logprint: fix continuation transactions

Mark Tinguely
2013-05-09T14:59:48Z

On 05/01/13 01:31, Dave Chinner wrote:
> From: Dave Chinner<dchinner@redhat.com>
>
> As demonstrated by xfs/295, continuation transactions cause of
> problems for xfs_logprint. The failure demonstrated by the test is
> that the buffer log format structures are variable sized on disk -
> the dirty bitmap is sized according to the buffer length, not fixed
> to the length of the maximum supported buffer size.
>
> xfs_logprint assumes that the buf log format reocrds are of fixed
> size, and so when a short buffer is found it fails to handle it
> properly and treats it like a continuation record. This causses the
> opheader pointer to be incremented incorrectly and then logprint
> wanders off into a dark corner and gets eaten by a grue.
>
> While fixing this, make the xlog_print_record code that does the
> transaction opheader walking a little easier to read and stop it
> from outputting binary data direct to the console by converting the
> no-data-print case to use a hex dumping loop.
>
> Signed-off-by: Dave Chinner<dchinner@redhat.com>
> ---
> logprint/log_misc.c | 22 +++++++++++++++++-----
> 1 file changed, 17 insertions(+), 5 deletions(-)

Looks good.

Reviewed-by: Mark Tinguely <tinguely@sgi.com>