diff --git a/drivers/md/dm-raid.c b/drivers/md/dm-raid.c index a38298589db865a7c57c137275c7044b12ac661f..b1dbf28f36d2c81d6a9f368a2b8e969f05ef4620 100644 --- a/drivers/md/dm-raid.c +++ b/drivers/md/dm-raid.c @@ -1221,7 +1221,8 @@ static int parse_raid_params(struct raid_set *rs, struct dm_arg_set *as, return -EINVAL; } /* Ensure sensible data offset */ - if (value < 0) { + if (value < 0 || + (value && (value < MIN_FREE_RESHAPE_SPACE || value % to_sector(PAGE_SIZE)))) { rs->ti->error = "Bogus data_offset value"; return -EINVAL; }