• Mike Snitzer's avatar
    block: avoid unconditionally freeing previously allocated request_queue · c86d1b8a
    Mike Snitzer authored
    On blk_init_allocated_queue_node failure, only free the request_queue if
    it is wasn't previously allocated outside the block layer
    (e.g. blk_init_queue_node was blk_init_allocated_queue_node caller).
    
    This addresses an interface bug introduced by the following commit:
    01effb0d block: allow initialization of previously allocated
    request_queue
    
    Otherwise the request_queue may be free'd out from underneath a caller
    that is managing the request_queue directly (e.g. caller uses
    blk_alloc_queue + blk_init_allocated_queue_node).
    Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
    Signed-off-by: default avatarJens Axboe <jaxboe@fusionio.com>
    c86d1b8a
blk-core.c 67.8 KB