[Devel] [PATCH vz9] dm-ploop: fix and rework md updates

Alexander Atanasov alexander.atanasov at virtuozzo.com
Wed Feb 12 11:15:04 MSK 2025


On 12.02.25 10:08, Pavel Tikhomirov wrote:
> 
> 
> 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.
> 


Ok, i will make v2 - i think this is the only one critical.

-- 
Regards,
Alexander Atanasov



More information about the Devel mailing list