Re: [PATCHv2]brd: set max_discard_sectors properly

From: Jinpu Wang
Date: Mon Apr 18 2016 - 09:56:14 EST


On Mon, Apr 18, 2016 at 10:34 AM, Jinpu Wang
<jinpu.wang@xxxxxxxxxxxxxxxx> wrote:
> On Sat, Apr 16, 2016 at 3:50 AM, Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:
>>> - blk_queue_max_discard_sectors(brd->brd_queue, UINT_MAX);
>>> + blk_queue_max_discard_sectors(brd->brd_queue, UINT_MAX >> 9);
>>
>> Shouldn't we fix the issue by capping to UINT_MAX >> 9 inside
>> blk_queue_max_discard_sectors? That way we'll prevent against having
>> issues like this in any other driver as well.
>
>
> Thanks Christoph, make sense to me, will rework it to this way.
>
> Regards,
> Jack
It turns out, the real fix is here:

commit 5e4298be45e83ecdffaabb370eea9396889b07f1
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Tue Dec 15 16:38:22 2015 +0100
brd: Fix discard request processing
Avoid that discard requests with size => PAGE_SIZE fail with
-EIO. Refuse discard requests if the discard size is not a
multiple of the page size.
Fixes: 2dbe54957636 ("brd: Refuse improperly aligned discard requests")
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Reviewed-by: Jan Kara <jack@xxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxx>
Cc: Robert Elliot <elliott@xxxxxx>
Cc: stable <stable@xxxxxxxxxxxxxxx> # v4.4+
Signed-off-by: Jens Axboe <axboe@xxxxxx>