Test if dm-writecache block size is smaller than devices' logical block
size and reject target load in that case.

Signed-off-by: Mikulas Patocka <[email protected]>

---
 drivers/md/dm-writecache.c |    6 ++++++
 1 file changed, 6 insertions(+)

Index: linux-2.6/drivers/md/dm-writecache.c
===================================================================
--- linux-2.6.orig/drivers/md/dm-writecache.c   2020-04-15 16:53:35.000000000 
+0200
+++ linux-2.6/drivers/md/dm-writecache.c        2020-04-15 17:05:34.000000000 
+0200
@@ -2128,6 +2128,12 @@ static int writecache_ctr(struct dm_targ
                ti->error = "Invalid block size";
                goto bad;
        }
+       if (wc->block_size < bdev_logical_block_size(wc->dev->bdev) ||
+           wc->block_size < bdev_logical_block_size(wc->ssd_dev->bdev)) {
+               r = -EINVAL;
+               ti->error = "Block size is smaller than device logical block 
size";
+               goto bad;
+       }
        wc->block_size_bits = __ffs(wc->block_size);
 
        wc->max_writeback_jobs = MAX_WRITEBACK_JOBS;

--
dm-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/dm-devel

Reply via email to