Re: [PATCH 5.4 100/191] block: fix splitting segments on boundary masks

From: Greg Kroah-Hartman
Date: Wed Jan 08 2020 - 06:17:43 EST


On Tue, Jan 07, 2020 at 02:00:56PM -0700, Jens Axboe wrote:
> On 1/7/20 1:53 PM, Greg Kroah-Hartman wrote:
> > From: Ming Lei <ming.lei@xxxxxxxxxx>
> >
> > commit 429120f3df2dba2bf3a4a19f4212a53ecefc7102 upstream.
> >
> > We ran into a problem with a mpt3sas based controller, where we would
> > see random (and hard to reproduce) file corruption). The issue seemed
> > specific to this controller, but wasn't specific to the file system.
> > After a lot of debugging, we find out that it's caused by segments
> > spanning a 4G memory boundary. This shouldn't happen, as the default
> > setting for segment boundary masks is 4G.
> >
> > Turns out there are two issues in get_max_segment_size():
> >
> > 1) The default segment boundary mask is bypassed
> >
> > 2) The segment start address isn't taken into account when checking
> > segment boundary limit
> >
> > Fix these two issues by removing the bypass of the segment boundary
> > check even if the mask is set to the default value, and taking into
> > account the actual start address of the request when checking if a
> > segment needs splitting.
>
> Greg, there's a problem with this one on ARM. Should be resolved
> shortly, but probably best to defer this one until the next 5.4
> stable release.
>
> I'll ping you with both patches once the dust has settled.

Thanks for letting me know, I've now dropped this from the queue.

greg k-h