> 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]>
