Re: [PATCH] block: fix max discard sectors limit

From: James Bottomley
Date: Wed Apr 24 2013 - 10:29:37 EST


On Wed, 2013-04-24 at 08:23 -0600, Jens Axboe wrote:
> On Wed, Apr 24 2013, Namjae Jeon wrote:
> > From: James Bottomley <JBottomley@xxxxxxxxxxxxx>
> >
> > linux-v3.8-rc1 and later support for plug for blkdev_issue_discard with
> > commit 0cfbcafcae8b7364b5fa96c2b26ccde7a3a296a9
> > (block: add plug for blkdev_issue_discard )
> >
> > For example,
> > 1) DISCARD rq-1 with size size 4GB
> > 2) DISCARD rq-2 with size size 1GB
> >
> > If these 2 discard requests get merged, final request size will be 5GB.
> >
> > In this case, request's __data_len field may overflow as it can store
> > max 4GB(unsigned int).
> >
> > This issue was observed while doing mkfs.f2fs on 5GB SD card:
> > https://lkml.org/lkml/2013/4/1/292
> >
> > Info: sector size = 512
> > Info: total sectors = 11370496 (in 512bytes)
> > Info: zone aligned segment0 blkaddr: 512
> > [ 257.789764] blk_update_request: bio idx 0 >= vcnt 0
> >
> > mkfs process gets stuck in D state and I see the following in the dmesg:
> >
> > [ 257.789733] __end_that: dev mmcblk0: type=1, flags=122c8081
> > [ 257.789764] sector 4194304, nr/cnr 2981888/4294959104
> > [ 257.789764] bio df3840c0, biotail df3848c0, buffer (null), len
> > 1526726656
> > [ 257.789764] blk_update_request: bio idx 0 >= vcnt 0
> > [ 257.794921] request botched: dev mmcblk0: type=1, flags=122c8081
> > [ 257.794921] sector 4194304, nr/cnr 2981888/4294959104
> > [ 257.794921] bio df3840c0, biotail df3848c0, buffer (null), len
> > 1526726656
> >
> > This patch fixes this issue.
> >
> > Reported-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
> > Signed-off-by: Namjae Jeon <namjae.jeon@xxxxxxxxxxx>
> > Signed-off-by: James Bottomley <JBottomley@xxxxxxxxxxxxx>
> > Tested-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
> > Cc: <stable@xxxxxxxxxxxxxxx>
>
> Thanks! One minor nit - I don't think James signed off on the patch when
> he sent it in. James?

I didn't, but silence is really acquiescence in this game. However, now
you have my positive confirmation that I'm good with the signoff.

James

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/