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 <[email protected]>
Tested-by: Christoph Hellwig <[email protected]>
Signed-off-by: Ming Lin <[email protected]>
Reviewed-by: Mike Snitzer <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>