diff options
author | Arianna Avanzini <avanzini@google.com> | 2015-12-01 11:48:18 +0100 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2015-12-01 10:52:10 -0700 |
commit | cf8ecc5a8455266f8d516426b2acd36f9bdfa061 (patch) | |
tree | 81f99d356c0adb2f806782aa491097009c1616cc /drivers/nvdimm | |
parent | 3c395a969acc690f331d5fb91ec99ea8eb5155dd (diff) |
null_blk: guarantee device restart in all irq modes
In single-queue (block layer) mode,the function null_rq_prep_fn stops
the device if alloc_cmd fails. Then, once stopped, the device must be
restarted on the next command completion, so that the request(s) for
which alloc_cmd failed can be requeued. Otherwise the device hangs.
Unfortunately, device restart is currently performed only for delayed
completions, i.e., in irqmode==2. This fact causes hangs, for the
above reasons, with the other irqmodes in combination with single-queue
block layer.
This commits addresses this issue by making sure that, if stopped, the
device is properly restarted for all irqmodes on completions.
Signed-off-by: Paolo Valente <paolo.valente@unimore.it>
Signed-off-by: Arianna AVanzini <avanzini@google.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'drivers/nvdimm')
0 files changed, 0 insertions, 0 deletions