aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/gcc-plugins/structleak_plugin.c
diff options
context:
space:
mode:
authorJeffle Xu <[email protected]>2020-11-04 03:57:56 +0000
committerMike Snitzer <[email protected]>2020-12-04 23:04:35 +0000
commit985eabdcfe3aad1aea6fc195dafff503f303aa3a (patch)
tree563e26950b3471f537ab1abb2e10fe4d902ca87e /scripts/gcc-plugins/structleak_plugin.c
parentblock: fix incorrect branching in blk_max_size_offset() (diff)
downloadkernel-985eabdcfe3aad1aea6fc195dafff503f303aa3a.tar.gz
kernel-985eabdcfe3aad1aea6fc195dafff503f303aa3a.zip
dm: remove unnecessary current->bio_list check when submitting split bio
The depth-first splitting is introduced in commit 18a25da84354 ("dm: ensure bio submission follows a depth-first tree walk"), which is used to fix the potential deadlock in case of the misordering handling of bios caused by bio_list. There're two paths submitting split bios, dm_wq_work() from worker thread and submit_bio() from application. Back upon that time, dm_wq_work() thread calls __split_and_process_bio() directly and thus will not trigger this issue since bio_list doesn't exist here. So this issue will only be triggered from application calling submit_bio(), and the fix has to check if current->bio_list is non-NULL to distinguish this case. However since commit 0c2915b8c6db1 ("dm: fix missing imposition of queue_limits from dm_wq_work() thread"), dm_wq_work() thread calls submit_bio_noacct() and thus also uses bio_list. Since then all entries into __split_and_process_bio() are under protection of bio_list, and thus the checking of current->bio_list when determinning if the depth-first principle should be used, seems kind of nonsense. After all the checking always succeeds now. Fixes: 0c2915b8c6db1 ("dm: fix missing imposition of queue_limits from dm_wq_work() thread") Signed-off-by: Jeffle Xu <[email protected]> Signed-off-by: Mike Snitzer <[email protected]>
Diffstat (limited to 'scripts/gcc-plugins/structleak_plugin.c')
0 files changed, 0 insertions, 0 deletions