> commit_iteration() asks for block status COMMIT_BUFFER_SIZE (512K) at a
> time, so a long run above base pays one query per 512K for an answer
> the whole run shares.
> 
> Query the remainder of the image instead and keep the answer in a
> CommitStatus owned by commit_run(). Nothing can write top above
> base_overlay while the job runs: BLK_PERM_CONSISTENT_READ is shared
> only from filtered_base downwards, and the job writes below
> base_overlay.

Minor: IMO this permissions rationale is a bit obscure... IIUC actual
writers request WRITE|CONSISTENT_READ, and since we can't withhold
WRITE as we have to write to the base, we trick the potential writer by
withholding CONSISTENT_READ.  Might be worth explaining here.

Anyways, with or without:
Reviewed-by: Andrey Drobyshev <[email protected]>

-- 
Andrey Drobyshev <[email protected]>

Reply via email to