diff mbox series

dm-writecache: validate block size against devices' logical block size

Message ID alpine.LRH.2.02.2004151107310.25321@file01.intranet.prod.int.rdu2.redhat.com (mailing list archive)
State Accepted, archived
Delegated to: Mike Snitzer
Headers show
Series dm-writecache: validate block size against devices' logical block size | expand

Commit Message

Mikulas Patocka April 15, 2020, 3:08 p.m. UTC
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 <mpatocka@redhat.com>

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


--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
diff mbox series

Patch

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;