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