1. 08 12月, 2018 7 次提交
  2. 02 10月, 2018 1 次提交
    • J
      nvme: call nvme_complete_rq when nvmf_check_ready fails for mpath I/O · 783f4a44
      James Smart 提交于
      When an io is rejected by nvmf_check_ready() due to validation of the
      controller state, the nvmf_fail_nonready_command() will normally return
      BLK_STS_RESOURCE to requeue and retry.  However, if the controller is
      dying or the I/O is marked for NVMe multipath, the I/O is failed so that
      the controller can terminate or so that the io can be issued on a
      different path.  Unfortunately, as this reject point is before the
      transport has accepted the command, blk-mq ends up completing the I/O
      and never calls nvme_complete_rq(), which is where multipath may preserve
      or re-route the I/O. The end result is, the device user ends up seeing an
      EIO error.
      
      Example: single path connectivity, controller is under load, and a reset
      is induced.  An I/O is received:
      
        a) while the reset state has been set but the queues have yet to be
           stopped; or
        b) after queues are started (at end of reset) but before the reconnect
           has completed.
      
      The I/O finishes with an EIO status.
      
      This patch makes the following changes:
      
        - Adds the HOST_PATH_ERROR pathing status from TP4028
        - Modifies the reject point such that it appears to queue successfully,
          but actually completes the io with the new pathing status and calls
          nvme_complete_rq().
        - nvme_complete_rq() recognizes the new status, avoids resetting the
          controller (likely was already done in order to get this new status),
          and calls the multipather to clear the current path that errored.
          This allows the next command (retry or new command) to select a new
          path if there is one.
      Signed-off-by: NJames Smart <jsmart2021@gmail.com>
      Reviewed-by: NSagi Grimberg <sagi@grimberg.me>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      783f4a44
  3. 08 8月, 2018 2 次提交
  4. 28 7月, 2018 2 次提交
  5. 23 7月, 2018 1 次提交
  6. 01 6月, 2018 3 次提交
  7. 18 1月, 2018 1 次提交
  8. 11 11月, 2017 3 次提交
  9. 25 9月, 2017 2 次提交
  10. 12 9月, 2017 1 次提交
  11. 30 8月, 2017 1 次提交
  12. 29 8月, 2017 5 次提交
  13. 25 7月, 2017 1 次提交
  14. 20 7月, 2017 1 次提交
  15. 28 6月, 2017 2 次提交
  16. 16 6月, 2017 1 次提交
  17. 15 6月, 2017 5 次提交
  18. 13 6月, 2017 1 次提交