On 2/11/25 22:25, Alexander Atanasov wrote:
@@ -2607,6 +2674,7 @@ int ploop_prepare_reloc_index_wb(struct ploop *ploop, type = PIWB_TYPE_RELOC;err = -EIO;+ spin_lock_irq(&ploop->bat_lock); if (test_bit(MD_DIRTY, &md->status) || test_bit(MD_WRITEBACK, &md->status)) { PL_ERR("Unexpected md status: %lx", md->status); goto out_error; @@ -2629,12 +2697,13 @@ int ploop_prepare_reloc_index_wb(struct ploop *ploop, if (err) goto out_reset; } + spin_unlock_irq(&ploop->bat_lock);*ret_md = md;return 0;out_reset:- ploop_break_bat_update(ploop, md); + ploop_break_bat_update(ploop, md, piwb); out_error: return err; }
You forgot to release bat_lock on out_reset error path. -- Best regards, Tikhomirov Pavel Senior Software Developer, Virtuozzo. _______________________________________________ Devel mailing list [email protected] https://lists.openvz.org/mailman/listinfo/devel
