[Devel] [RFC PATCH vz9 v6 23/62] dm-ploop: make new allocations immediately visible in BAT

Pavel Tikhomirov ptikhomirov at virtuozzo.com
Mon Jan 20 10:41:37 MSK 2025


On 12/6/24 05:55, Alexander Atanasov wrote:
> @@ -1402,6 +1402,12 @@ static void ploop_submit_cow_index_wb(struct ploop_cow *cow)
>   	WARN_ON(to[clu]);
>   	WRITE_ONCE(to[clu], cow->dst_clu);
>   
> +	write_lock_irqsave(&md->lock, flags);

Should have _irq suffix.

> +	to = md->kmpage;
> +	WRITE_ONCE(to[clu], cow->dst_clu);
> +	WRITE_ONCE(md->bat_levels[clu], ploop_top_level(ploop));
> +	write_unlock_irqrestore(&md->lock, flags);
> +
>   	/* Prevent double clearing of holes_bitmap bit on complete_cow() */
>   	cow->dst_clu = BAT_ENTRY_NONE;
>   	spin_lock_irq(&ploop->deferred_lock);

Same as here.

note: Only possible call stack:

   +-< ploop_submit_cow_index_wb
     +-< ploop_process_one_delta_cow
     | +-< ploop_process_delta_cow
     | | +-< do_ploop_run_work
     | | | +-< do_ploop_work
     | | | +-< ploop_worker

it is always in process context.

-- 
Best regards, Tikhomirov Pavel
Senior Software Developer, Virtuozzo.



More information about the Devel mailing list