The cache target already exposes the origin device through
cache_iterate_devices(), which allows dm-table to call
device_area_is_invalid() and verify that the mapping fits inside the
underlying block device.
The explicit ti->len > origin_sectors test in parse_origin_dev() is
therefore redundant. Drop this check and rely on the core device
validation instead. This changes the user-visible error string when the
origin is too small, but preserves the failure behaviour.
Signed-off-by: Li Chen <me@linux.beauty>
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
static int parse_origin_dev(struct cache_args *ca, struct dm_arg_set *as,
char **error)
{
- sector_t origin_sectors;
int r;
if (!at_least_one_arg(as, error))
return r;
}
- origin_sectors = get_dev_size(ca->origin_dev);
- if (ca->ti->len > origin_sectors) {
- *error = "Device size larger than cached device";
- return -EINVAL;
- }
-
return 0;
}