On 2018-09-19 15:08, Goffredo Baroncelli wrote:
On 18/09/2018 19.15, Goffredo Baroncelli wrote:
b. The bootloader code, would have to have sophisticated enough Btrfs
knowledge to know if the grubenv has been reflinked or snapshot,
because even if +C, it may not be valid to overwrite, and COW must
still happen, and there's no way the code in GRUB can do full blow COW
and update a bunch of metadata.

And what if GRUB ignore the possibility of COWing and overwrite the data ? Is 
it a so big problem that the data is changed in all the snapshots ?
It would be interested if the same problem happens for a swap file.....

I gave a look to the Sandoval's patches about implementing swap on BTRFS. This 
patch set
prevents the subvolume containing the swapfile to be snapshot-ted (and the file 
to be balanced and so on...); what if we would add the same constraint to the 
grubenv file ?
We would need to have a generalized mechanism of doing this then, because there's no way in hell a patch special-casing a single filename is going to make it into mainline.

Whatever mechanism is used, it should also:

* Force the file to not be inlined in metadata.
* Enforce the file having the NOCOW attribute being set.

Reply via email to