summaryrefslogtreecommitdiffstats
path: root/drivers/block
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2016-01-08 21:20:11 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2016-01-08 21:20:11 -0500
commit6108209c4ae964836f6bac5210f1c64153800b62 (patch)
tree83651902b46af6bbf8d2ea4841b397bac306095b /drivers/block
parenta1c6f05733c27ba7067c06c095f49e8732a5ae17 (diff)
parenta7f61e89af73e9bf760826b20dba4e637221fcb9 (diff)
downloadlinux-6108209c4ae964836f6bac5210f1c64153800b62.tar.bz2
Merge branch 'for-linus' into work.misc
Diffstat (limited to 'drivers/block')
-rw-r--r--drivers/block/null_blk.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/block/null_blk.c b/drivers/block/null_blk.c
index a428e4ef71fd..09e3c0d87ecc 100644
--- a/drivers/block/null_blk.c
+++ b/drivers/block/null_blk.c
@@ -232,20 +232,19 @@ static void end_cmd(struct nullb_cmd *cmd)
break;
case NULL_Q_BIO:
bio_endio(cmd->bio);
- goto free_cmd;
+ break;
}
+ free_cmd(cmd);
+
/* Restart queue if needed, as we are freeing a tag */
- if (q && !q->mq_ops && blk_queue_stopped(q)) {
+ if (queue_mode == NULL_Q_RQ && blk_queue_stopped(q)) {
unsigned long flags;
spin_lock_irqsave(q->queue_lock, flags);
- if (blk_queue_stopped(q))
- blk_start_queue(q);
+ blk_start_queue_async(q);
spin_unlock_irqrestore(q->queue_lock, flags);
}
-free_cmd:
- free_cmd(cmd);
}
static enum hrtimer_restart null_cmd_timer_expired(struct hrtimer *timer)