dm-mq and end_clone_request()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux