dm: do not override error code returned from dm_get_device()
[firefly-linux-kernel-4.4.55.git] / drivers / md / dm-stripe.c
index a672a1502c1414e8cdc3e003ed0a1f74692e3e12..9a814a5eb89f3484718fca36aed3cf4deebf6f2d 100644 (file)
@@ -75,13 +75,15 @@ static int get_stripe(struct dm_target *ti, struct stripe_c *sc,
 {
        unsigned long long start;
        char dummy;
+       int ret;
 
        if (sscanf(argv[1], "%llu%c", &start, &dummy) != 1)
                return -EINVAL;
 
-       if (dm_get_device(ti, argv[0], dm_table_get_mode(ti->table),
-                         &sc->stripe[stripe].dev))
-               return -ENXIO;
+       ret = dm_get_device(ti, argv[0], dm_table_get_mode(ti->table),
+                           &sc->stripe[stripe].dev);
+       if (ret)
+               return ret;
 
        sc->stripe[stripe].physical_start = start;