mmc: subtract boot sectors from disk size for eMMC 4.3+ devices
[firefly-linux-kernel-4.4.55.git] / drivers / md / dm-mpath.c
index 826bce7343b3697e5abdfd4c62e760250f6ecf3a..487ecda90ad48f769643d03cf862cdff5ee8c76e 100644 (file)
@@ -706,6 +706,7 @@ static struct priority_group *parse_priority_group(struct arg_set *as,
 
                if (as->argc < nr_params) {
                        ti->error = "not enough path parameters";
+                       r = -EINVAL;
                        goto bad;
                }
 
@@ -892,6 +893,7 @@ static int multipath_ctr(struct dm_target *ti, unsigned int argc,
        }
 
        ti->num_flush_requests = 1;
+       ti->num_discard_requests = 1;
 
        return 0;
 
@@ -1271,6 +1273,15 @@ static int do_end_io(struct multipath *m, struct request *clone,
        if (error == -EOPNOTSUPP)
                return error;
 
+       if (clone->cmd_flags & REQ_DISCARD)
+               /*
+                * Pass all discard request failures up.
+                * FIXME: only fail_path if the discard failed due to a
+                * transport problem.  This requires precise understanding
+                * of the underlying failure (e.g. the SCSI sense).
+                */
+               return error;
+
        if (mpio->pgpath)
                fail_path(mpio->pgpath);