|
@@ -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;
|
|
|
}
|
|
|
}
|