Re: [PATCH] xfs: fix broken multi-fsb buffer logging

Dave Chinner
2016-05-31T22:40:20Z

On Tue, May 31, 2016 at 06:32:52PM +1000, Dave Chinner wrote:
> On Wed, May 25, 2016 at 03:31:07PM -0400, Brian Foster wrote:
> > Multi-block buffers are logged based on buffer offset in
> > xfs_trans_log_buf(). xfs_buf_item_log() ultimately walks each mapping in
> > the buffer and marks the associated range to be logged in the
> > xfs_buf_log_format bitmap for that mapping. This code is broken,
> > however, [....]
>
> [snip description I've not read, and go look at the code changes]

....

> So from the code perspective the change looks correct. I've looked
> over all the other users of bp->b_maps[i].bm_len and loops over
> bli_format_count and I can't see any other obvious problems. I'm
> going to leave this under test overnight and see if anything pops
> up...

Passes all the tests I've thrown at it. multiple xfstests runs on
multiple machines with dir block sizes from 16k to 64k, fsmark runs
with 16k and 64k block sizes, dbench stress loops with up to 500
processes running at once, etc.

Reviewed-by: Dave Chinner <dchinner@redhat.com>

I'll commit this when I get to updating the xfs trees now that
the merge window has closed and 4.7-rc1 is out. Hopefully that will
be later today....

Cheers,

Dave.
--
Dave Chinner
david@fromorbit.com