On Tue, Nov 11 2003, Nick Piggin wrote:
Jens Axboe wrote:
Hi,Hi Jens
@@ -1553,6 +1559,10 @@I know I hijacked elv_may_queue from you... any chance we could seperate
struct io_context *ioc = get_io_context(gfp_mask);
spin_lock_irq(q->queue_lock);
+
+ if (!elv_may_queue(q, rw))
+ goto out_lock;
+
if (rl->count[rw]+1 >= q->nr_requests) {
/*
* The queue will fill after this allocation, so set it as
@@ -1566,15 +1576,12 @@
}
}
- if (blk_queue_full(q, rw)
- && !ioc_batching(ioc) && !elv_may_queue(q, rw)) {
these so our schedulers can live in peace? ;)
IOW, you completely broke it! I'm just changing it back to the
original. When was this done, btw? Just discovered it when updating the
patch. Pretty annoying...
Maybe my version should be called elv_force_queue?
I just hate to see more of these, really. The original idea for
may_queue was just that, may this process queue io or not. We can make
it return something else, though, to indicate whether the process must
be able to queue. Is it really needed?