]> git.karo-electronics.de Git - karo-tx-linux.git/commit
Support discards when the pool's block size is not a power of 2.
authorMike Snitzer <snitzer@redhat.com>
Thu, 27 Sep 2012 23:28:20 +0000 (09:28 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Thu, 27 Sep 2012 23:28:20 +0000 (09:28 +1000)
commit39d0ebdd184fed81840767b92fa9d21ac584f2db
tree652453990f69c075b735458930bb1988e1e00d40
parent1b9af204f12bf617e8cae70eb477776c1b2d5418
Support discards when the pool's block size is not a power of 2.
The block layer assumes discard_granularity is a power of 2 (in
blkdev_issue_discard), so we set this to the largest power of 2 that is
a divides into the number of sectors in each block, but never less than
DATA_DEV_BLOCK_SIZE_MIN_SECTORS.

This patch eliminates the "Discard support must be disabled when the
block size is not a power of 2" constraint that was imposed in commit
55f2b8b ("dm thin: support for non power of 2 pool blocksize").  That
commit was incomplete: using a block size that is not a power of 2
shouldn't mean disabling discard support on the device completely.

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
drivers/md/dm-thin.c