aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--block/blk.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/block/blk.h b/block/blk.h
index 1f798b5a6f1..d6586287adc 100644
--- a/block/blk.h
+++ b/block/blk.h
@@ -61,6 +61,7 @@ static inline struct request *__elv_next_request(struct request_queue *q)
rq = list_entry_rq(q->queue_head.next);
return rq;
}
+
/*
* Flush request is running and flush request isn't queueable
* in the drive, we can hold the queue till flush request is
@@ -81,7 +82,8 @@ static inline struct request *__elv_next_request(struct request_queue *q)
q->flush_queue_delayed = 1;
return NULL;
}
- if (!q->elevator->ops->elevator_dispatch_fn(q, 0))
+ if (test_bit(QUEUE_FLAG_DEAD, &q->queue_flags) ||
+ !q->elevator->ops->elevator_dispatch_fn(q, 0))
return NULL;
}
}