dm-integrity: dont join the paths in dm_integrity_map_continue
Mikulas Patocka
maintainerPATCH 2/9 dm-integrity: dont join the paths in dm_integrity_map_continue
Don't join the code paths when we are out of free sectors and when add_new_range fails. This has no functional change, but it will help with the next patch.
Signed-off-by Mikulas Patocka <[email protected]>
--- drivers/md/dm-integrity.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
drivers/md/dm-integrity.c +7 -3
@@ -1599,8 +1599,12 @@ retry: dio->range.n_sectors =min (dio->range.n_sectors, ic->free_sectors << ic->sb->log2_sectors_per_block); -if (unlikely (!dio->range.n_sectors)) - goto sleep; +if (unlikely (!dio->range.n_sectors)) { +if (from_map) + goto offload_to_thread; +sleep_on_endio_wait (ic); + goto retry; + } range_sectors = dio->range.n_sectors >> ic->sb->log2_sectors_per_block; ic->free_sectors -= range_sectors; journal_section = ic->free_section;
@@ -1660,8 +1664,8 @@ retry:* stall bios on current->bio_list. * So, we offload the bio to a workqueue if we have to sleep. */ -sleep:if (from_map) { +offload_to_thread:spin_unlock_irq (&ic->endio_wait.lock);INIT_WORK (&dio->work, integrity_bio_wait);queue_work (ic->wait_wq, &dio->work);