• Jonathan Corbet's avatar
    [PATCH] Request queue micropatch · 503be986
    Jonathan Corbet authored
    FYI, I have gotten some most strange results with the equivalent of:
    
         request_queue_t *q = kmalloc(...);
         blk_init_queue(q, ...)
    
    The problem turns out to be that q->backing_dev_info.memory_backed is not
    initialized, leaving it to be whatever was there before.  The end result is
    that my "driver" never saw write requests, but reads came through fine.
    Took a while to figure out that one...
    
    Here's the fix, for what it's worth.  (I had, BTW, tried just zeroing the
    whole structure in blk_init_queue(), but that makes IDE oops at boot - it
    sets q->queuedata early).
    503be986
ll_rw_blk.c 58.2 KB