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 <[email protected]>
---
 drivers/md/dm-cache-target.c | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/drivers/md/dm-cache-target.c b/drivers/md/dm-cache-target.c
index a10d75a562db..350a0aa53365 100644
--- a/drivers/md/dm-cache-target.c
+++ b/drivers/md/dm-cache-target.c
@@ -2099,7 +2099,6 @@ static int parse_cache_dev(struct cache_args *ca, struct 
dm_arg_set *as,
 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))
@@ -2112,12 +2111,6 @@ static int parse_origin_dev(struct cache_args *ca, 
struct dm_arg_set *as,
                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;
 }
 
-- 
2.51.0


Reply via email to