On Tue, Oct 16, 2018 at 10:08 PM, Anand Jain <anand.j...@oracle.com> wrote:


>
>  So a possible solution for the reproducible builds:
>    usual mkfs.btrfs dev
>    Write the data
>    unmount; create btrfs-image with uuid/fsid/time sanitized; mark it as a
> seed (RO).
>    check/verify the hash of the image.

Gotcha. Generation/transid needs to be included in that list. Imagine
a fast system vs a slow system. The slow system certainly will end up
with with higher transid's for the latest completed transactions.

But also, I don't know how the kernel code chooses block numbers,
either physical (chunk allocation) or logical (extent allocation) and
if that could be made deterministic. Same for inode assignment.

Another question that comes up later when creating the sprout by
removing the seed device, is how a script can know when all block
groups have successfully copied from seed to sprout, and that the
sprout can be unmounted.



-- 
Chris Murphy

Reply via email to