NVMe: Schedule timeout for sync commands
authorKeith Busch <keith.busch@intel.com>
Fri, 19 Apr 2013 20:11:06 +0000 (14:11 -0600)
committerMatthew Wilcox <matthew.r.wilcox@intel.com>
Thu, 2 May 2013 19:36:02 +0000 (15:36 -0400)
Schedule a timeout on sync commands in case the command times out and
the device is not being polled for timeouts. This prevents device removal
from hanging forever if the device has stopped responding.

Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
drivers/block/nvme-core.c

index 5a3f2235892af84a99828dd4562b94b5e04f4eda..a232dfc1cd4a52a9d874072161667b4740fd6bf9 100644 (file)
@@ -828,7 +828,7 @@ int nvme_submit_sync_cmd(struct nvme_queue *nvmeq, struct nvme_command *cmd,
 
        set_current_state(TASK_KILLABLE);
        nvme_submit_cmd(nvmeq, cmd);
-       schedule();
+       schedule_timeout(timeout);
 
        if (cmdinfo.status == -EINTR) {
                nvme_abort_command(nvmeq, cmdid);