static int parse_dest_dev(struct clone *clone, struct dm_arg_set *as, char **error)
{
int r;
- sector_t dest_dev_size;
r = dm_get_device(clone->ti, dm_shift_arg(as),
BLK_OPEN_READ | BLK_OPEN_WRITE, &clone->dest_dev);
return r;
}
- dest_dev_size = get_dev_size(clone->dest_dev);
- if (dest_dev_size < clone->ti->len) {
- dm_put_device(clone->ti, clone->dest_dev);
- *error = "Device size larger than destination device";
- return -EINVAL;
- }
-
return 0;
}
static int parse_source_dev(struct clone *clone, struct dm_arg_set *as, char **error)
{
int r;
- sector_t source_dev_size;
r = dm_get_device(clone->ti, dm_shift_arg(as), BLK_OPEN_READ,
&clone->source_dev);
return r;
}
- source_dev_size = get_dev_size(clone->source_dev);
- if (source_dev_size < clone->ti->len) {
- dm_put_device(clone->ti, clone->source_dev);
- *error = "Device size larger than source device";
- return -EINVAL;
- }
-
return 0;
}