NVMe: Allow fatal signals to interrupt I/O
authorMatthew Wilcox <matthew.r.wilcox@intel.com>
Fri, 4 Feb 2011 21:03:56 +0000 (16:03 -0500)
committerMatthew Wilcox <matthew.r.wilcox@intel.com>
Fri, 4 Nov 2011 19:52:55 +0000 (15:52 -0400)
commit3c0cf138d7789feb3f335f6f1d24ad8fc8b3a23f
treed3c4fe55735c275d6571b2dc7dcb80baedbb7490
parentdb5d0c198d673b6a932b449d4db95a2ad50c755e
NVMe: Allow fatal signals to interrupt I/O

If the user sends a fatal signal, sleeping in the TASK_KILLABLE state
permits the task to be aborted.  The only wrinkle is making sure that
if/when the command completes later that it doesn't upset anything.
Handle this by setting the data pointer to 0, and checking the value
isn't NULL in the sync completion path.  Eventually, bios can be cancelled
through this path too.  Note that the cmdid isn't freed to prevent reuse.

We should also abort the command in the future, but this is a good start.

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