block: re-add discard_granularity and alignment checks
authorMing Lin <ming.l@ssi.samsung.com>
Thu, 22 Oct 2015 16:59:42 +0000 (09:59 -0700)
committerJens Axboe <axboe@fb.com>
Wed, 28 Oct 2015 00:12:58 +0000 (09:12 +0900)
commita22c4d7e34402ccdf3414f64c50365436eba7b93
tree2d71db7c04930b5f88f4745cb6c8d5c59cf33075
parent23d88271b4f97f66de521ac9b2c1471e6311cf26
block: re-add discard_granularity and alignment checks

In commit b49a087("block: remove split code in
blkdev_issue_{discard,write_same}"), discard_granularity and alignment
checks were removed. Ideally, with bio late splitting, the upper layers
shouldn't need to depend on device's limits.

Christoph reported a discard regression on the HGST Ultrastar SN100 NVMe
device when mkfs.xfs. We have not found the root cause yet.

This patch re-adds discard_granularity and alignment checks by reverting
the related changes in commit b49a087. The good thing is now we can
remove the 2G discard size cap and just use UINT_MAX to avoid bi_size
overflow.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Tested-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Ming Lin <ming.l@ssi.samsung.com>
Reviewed-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
block/blk-lib.c