summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeith Busch <keith.busch@intel.com>2013-04-19 22:11:06 +0200
committerMatthew Wilcox <matthew.r.wilcox@intel.com>2013-05-02 21:36:02 +0200
commit78f8d2577bd79ce9d62f4d9e6d3b895bd1dd1d1d (patch)
tree95cd85a20e7b352a9d8810f831cd79f82061e54b
parentNVMe: Meta-data support in NVME_IOCTL_SUBMIT_IO (diff)
downloadlinux-78f8d2577bd79ce9d62f4d9e6d3b895bd1dd1d1d.tar.xz
linux-78f8d2577bd79ce9d62f4d9e6d3b895bd1dd1d1d.zip
NVMe: Schedule timeout for sync commands
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>
-rw-r--r--drivers/block/nvme-core.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/block/nvme-core.c b/drivers/block/nvme-core.c
index 5a3f2235892a..a232dfc1cd4a 100644
--- a/drivers/block/nvme-core.c
+++ b/drivers/block/nvme-core.c
@@ -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);