Re: [PATCH 2/2] xfs_logprint: Handle continued inode transactions

Eric Sandeen
2012-11-02T14:33:20Z

On 11/2/12 8:04 AM, Christoph Hellwig wrote:
> On Thu, Nov 01, 2012 at 11:32:48AM -0500, Eric Sandeen wrote:
>>
>> Tested by running xfs_logprint of TEST_DEV in xfsprogs
>> after sequential tests; without this change it gets off
>> in the weeds eventually; with this fix, it lasts longer,
>> until it hits some other yet-unfixed logprint bug...
>
> Add this testcase to xfstests, please.

well, "this" isn't really a testcase; it's just running logprint
after every test. And in some cases, esp. if the log has wrapped,
that just fails outright due to unrelated problems.

TBH I'm not sure how to generate a testcase for just this issue.
Any ideas?

>> int
>> -xlog_print_trans_inode(xfs_caddr_t *ptr, int len, int *i, int num_ops)
>> +xlog_print_trans_inode(xfs_caddr_t *ptr, int len, int *i, int num_ops, int continued)
>
> Shouldn't this be a bool?

sure

>> xlog_print_op_header(op_head, i, &ptr);
>> + continued = (XLOG_SET(op_head->oh_flags, XLOG_WAS_CONT_TRANS) ||
>> + XLOG_SET(op_head->oh_flags, XLOG_CONTINUE_TRANS));
>
> I'd also really love to see another cleanup patch to kill the
> XLOG_SET macro. The XLOG_ flags are true flags so they can be replaced
> by a simple op_head->oh_flags & XLOG_FLAG.

hm, yeah, that is odd.

if (*last_was_partial_copy)
ophdr->oh_flags |= (XLOG_END_TRANS|XLOG_WAS_CONT_TRANS);

whereas XLOG_SET tests for one and only one.

-Eric

> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs