[Devel] [RFC PATCH vz9 v6 43/62] dm-ploop: make ploop_submit_metadata_writeback return number of requests sent

Alexander Atanasov alexander.atanasov at virtuozzo.com
Tue Dec 17 21:38:38 MSK 2024


On 13.12.24 15:15, Andrey Zhadchenko wrote:

>> -static void ploop_submit_metadata_writeback(struct ploop *ploop, int 
>> force)
>> +static int ploop_submit_metadata_writeback(struct ploop *ploop, int 
>> force)

>>   {
>>       unsigned long flags;
>>       LIST_HEAD(ll_skipped);
>> @@ -1897,19 +1897,25 @@ static void 
>> ploop_submit_metadata_writeback(struct ploop *ploop, int force)
>>       struct llist_node *pos, *t;
>>       struct llist_node *ll_wb_batch;
>>       unsigned long timeout = jiffies;
>> +    int ret;
>>       /* Lock here to protect against md_inflight counting */
>>       spin_lock_irqsave(&ploop->bat_lock, flags);
>>       ll_wb_batch = llist_del_all(&ploop->wb_batch_llist);
>>       spin_unlock_irqrestore(&ploop->bat_lock, flags);
>> +    if (!ll_wb_batch)
>> +        return 0;
>> +
>> +    ret = 0;
>> +
>>       /*
>>        * Pages are set dirty so no one must touch lists
>>        * if new md entries are dirtied they are added at the start of 
>> the list
>>        */
>>       llist_for_each_safe(pos, t, ll_wb_batch) {
>>           md = list_entry((struct list_head *)pos, typeof(*md), wb_link);
>> -        if (test_bit(MD_HIGHPRIO, &md->status) || 
>> time_before(md->dirty_timeout, timeout)
>> -            || ploop->force_md_writeback) {
> 
> We change 'ploop->force_md_writeback' to just 'force' argument. Probably 
> this should belong to one of the previous patches


nice catch - actually ploop_submit_metadata_writeback(struct ploop 
*ploop, int force) went in too early



-- 
Regards,
Alexander Atanasov



More information about the Devel mailing list