[Devel] [RFC PATCH vz9 v6 02/62] dm-ploop: Use READ_ONCE/WRITE_ONCE to access md page data

Pavel Tikhomirov ptikhomirov at virtuozzo.com
Mon Jan 20 10:23:19 MSK 2025



On 12/6/24 05:55, Alexander Atanasov wrote:
> @@ -1090,9 +1090,9 @@ static int ploop_alloc_cluster(struct ploop *ploop, struct ploop_index_wb *piwb,
>   	clu -= piwb->page_id * PAGE_SIZE / sizeof(map_index_t) - PLOOP_MAP_OFFSET;
>   
>   	to = piwb->kmpage;
> -	if (to[clu]) {
> +	if (READ_ONCE(to[clu])) {
>   		/* Already mapped by one of previous bios */
> -		*dst_clu = to[clu];
> +		*dst_clu = READ_ONCE(to[clu]);
>   		already_alloced = true;
>   	}
>   

The above hunk does not look good, we explicitly do "READ_ONCE(to[clu])" 
twice, likely that's not what we want.

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



More information about the Devel mailing list