|
@@ -1561,7 +1561,6 @@ static int multipath_ioctl(struct dm_target *ti, unsigned int cmd,
|
|
|
unsigned long flags;
|
|
|
int r;
|
|
|
|
|
|
-again:
|
|
|
bdev = NULL;
|
|
|
mode = 0;
|
|
|
r = 0;
|
|
@@ -1579,7 +1578,7 @@ again:
|
|
|
}
|
|
|
|
|
|
if ((pgpath && m->queue_io) || (!pgpath && m->queue_if_no_path))
|
|
|
- r = -EAGAIN;
|
|
|
+ r = -ENOTCONN;
|
|
|
else if (!bdev)
|
|
|
r = -EIO;
|
|
|
|
|
@@ -1591,11 +1590,8 @@ again:
|
|
|
if (!r && ti->len != i_size_read(bdev->bd_inode) >> SECTOR_SHIFT)
|
|
|
r = scsi_verify_blk_ioctl(NULL, cmd);
|
|
|
|
|
|
- if (r == -EAGAIN && !fatal_signal_pending(current)) {
|
|
|
+ if (r == -ENOTCONN && !fatal_signal_pending(current))
|
|
|
queue_work(kmultipathd, &m->process_queued_ios);
|
|
|
- msleep(10);
|
|
|
- goto again;
|
|
|
- }
|
|
|
|
|
|
return r ? : __blkdev_driver_ioctl(bdev, mode, cmd, arg);
|
|
|
}
|