Merge tag 'tty-3.16-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
[cascardo/linux.git] / drivers / md / dm-mpath.c
index ebfa411..f4167b0 100644 (file)
@@ -1242,17 +1242,8 @@ static int do_end_io(struct multipath *m, struct request *clone,
        if (!error && !clone->errors)
                return 0;       /* I/O complete */
 
-       if (noretry_error(error)) {
-               if ((clone->cmd_flags & REQ_WRITE_SAME) &&
-                   !clone->q->limits.max_write_same_sectors) {
-                       struct queue_limits *limits;
-
-                       /* device doesn't really support WRITE SAME, disable it */
-                       limits = dm_get_queue_limits(dm_table_get_md(m->ti->table));
-                       limits->max_write_same_sectors = 0;
-               }
+       if (noretry_error(error))
                return error;
-       }
 
        if (mpio->pgpath)
                fail_path(mpio->pgpath);
@@ -1620,8 +1611,9 @@ static int multipath_busy(struct dm_target *ti)
 
        spin_lock_irqsave(&m->lock, flags);
 
-       /* pg_init in progress, requeue until done */
-       if (!pg_ready(m)) {
+       /* pg_init in progress or no paths available */
+       if (m->pg_init_in_progress ||
+           (!m->nr_valid_paths && m->queue_if_no_path)) {
                busy = 1;
                goto out;
        }