summaryrefslogtreecommitdiff
path: root/block/bio.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.com>2019-03-29 10:46:16 -0700
committerJens Axboe <axboe@kernel.dk>2019-04-01 12:11:48 -0600
commit4bc034d35377196c854236133b07730a777c4aba (patch)
tree58b75009263777beb5fdf4a058af5f6ba2a3d1be /block/bio.c
parent4f4fd7c5798bbdd5a03a60f6269cf1177fbd11ef (diff)
Revert "MD: fix lock contention for flush bios"
This reverts commit 5a409b4f56d50b212334f338cb8465d65550cd85. This patch has two problems. 1/ it make multiple calls to submit_bio() from inside a make_request_fn. The bios thus submitted will be queued on current->bio_list and not submitted immediately. As the bios are allocated from a mempool, this can theoretically result in a deadlock - all the pool of requests could be in various ->bio_list queues and a subsequent mempool_alloc could block waiting for one of them to be released. 2/ It aims to handle a case when there are many concurrent flush requests. It handles this by submitting many requests in parallel - all of which are identical and so most of which do nothing useful. It would be more efficient to just send one lower-level request, but allow that to satisfy multiple upper-level requests. Fixes: 5a409b4f56d5 ("MD: fix lock contention for flush bios") Cc: <stable@vger.kernel.org> # v4.19+ Tested-by: Xiao Ni <xni@redhat.com> Signed-off-by: NeilBrown <neilb@suse.com> Signed-off-by: Song Liu <songliubraving@fb.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/bio.c')
0 files changed, 0 insertions, 0 deletions