• Christoph Hellwig's avatar
    blk-mq: fix for flush deadlock · 3228f48b
    Christoph Hellwig authored
    The flush state machine takes in a struct request, which then is
    submitted multiple times to the underling driver.  The old block code
    requeses the same request for each of those, so it does not have an
    issue with tapping into the request pool.  The new one on the other hand
    allocates a new request for each of the actualy steps of the flush
    sequence. If have already allocated all of the tags for IO, we will
    fail allocating the flush request.
    Set aside a reserved request just for flushes.
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
blk-flush.c 16 KB