Hello Mike,
If I run a fio data integrity test against kernel v4.7-rc7 then I see
often that fio reports I/O errors if a path is removed despite
queue_if_no_path having been set in /etc/multipath.conf. Further
analysis showed that this happens because during SCSI device removal a
SCSI device enters state SDEV_CANCEL before the block layer queue is
marked as "dying". In that state I/O requests submitted to that SCSI
device are failed with -EIO. The behavior for end_clone_request() in
drivers/md/dm.c for such requests is as follows:
- With multiqueue support disabled, call __blk_put_request() and ignore
the "error" argument passed to end_clone_request().
- With multiqueue support enabled, pass the "error" argument to
dm_complete_request().
Shouldn't end_clone_request() requeue failed requests in both cases
instead of passing the I/O error to the submitter only if multiqueue is
enabled?
Thanks,
Bart.
--
dm-devel mailing list
dm-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/dm-devel