• Tejun Heo's avatar
    block: kick queue after sequencing REQ_FLUSH/FUA · 47f70d5a
    Tejun Heo authored
    While completing a request from a REQ_FLUSH/FUA sequence, another
    request can be pushed to the request queue.  If a driver tests
    elv_queue_empty() before completing a request and runs the queue again
    only if the queue wasn't empty, this may lead to hang.  Please note
    that most drivers either kick the queue unconditionally or test queue
    emptiness after completing the current request and don't have this
    This patch removes this possibility by making REQ_FLUSH/FUA sequence
    code kick the queue if the queue was empty before completing a request
    from REQ_FLUSH/FUA sequence.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Signed-off-by: default avatarJens Axboe <jaxboe@fusionio.com>
blk-flush.c 6.77 KB