On Mon, Oct 27, 2025 at 5:20 PM Daniel Kiper <[email protected]> wrote: > > On Mon, Oct 27, 2025 at 04:55:41PM -0400, Neal Gompa wrote: > > On Mon, Oct 20, 2025 at 11:04 AM Daniel Kiper <[email protected]> wrote: > > > On Fri, Oct 17, 2025 at 05:01:31PM +0800, Michael Chang via Grub-devel > > > wrote: > > > > This patch series adds support for storing the GRUB environment block in > > > > a reserved area of the Btrfs header. On copy on write filesystems such > > > > as Btrfs, the normal file based envblk cannot be updated safely at > > > > runtime because block addresses are not stable. The reserved area > > > > provides a fixed location that GRUB can write directly, allowing > > > > commands such as grub-reboot and savedefault to work on Btrfs volumes. > > > > > > > > The series proceeds in small chunks to keep each change buildable and > > > > easier to review. The first patches add new data structures and helpers > > > > for creating, opening, and writing an environment block in the reserved > > > > area. Later patches update set_variables, unset_variables, and > > > > list_variables so they can use the external block when it is present. An > > > > entry is added to the Btrfs header to reserve space at 256 KiB for the > > > > environment block. Finally, grub.cfg is modified so that load_env and > > > > save_env use the external block automatically when env_block is defined. > > > > > > > > The first two patches are new in this series as feedback from the review > > > > to use a portable string specifier for size_t. Unfortunately the z > > > > length modifier is missing in GRUB printf routine's format specifier. > > > > The new patches add support and test case for that. In theory they can > > > > be reviewed separately. > > > > > > > > And also yet another new patch "btrfs: update doc link for bootloader > > > > support" added at the end to address v3 review feedback. > > > > > > > > v2: > > > > - Define ENV_BTRFS_OFFSET as 256*1024 > > > > - Do not conflate type and variable definitions > > > > - Align typedef with struct declaration to follow coding style > > > > - Use bool as the return type of is_abstraction() > > > > - Add "if (dev->disk != NULL)" check in is_abstraction() > > > > - Refine the loop logic in is_abstraction() tests > > > > - Remove extra indentation and redundant lines in read_envblk_fs > > > > - Use off_t and size_t for offset and size variables, fix similar cases > > > > throughout > > > > - Use explicit check "(fp == NULL)" instead of "(! fp)", fix similar > > > > cases throughout > > > > - Use bool for the "found" field in var_lookup_ctx > > > > - Add documentation describing the Btrfs environment block and special > > > > environment block variables > > > > v3: > > > > - Replace !fp with explicit (fp == NULL) for clarity > > > > - Fix missing blank line before return statement > > > > - Fix missing space after cast operator > > > > v4: > > > > - Rename ENV_BTRFS_OFFSET to GRUB_ENV_BTRFS_OFFSET > > > > - Move GRUB_ENV_BTRFS_OFFSET into "btrfs: add environment block to > > > > reserved header area" > > > > - Adjust patch order to resolve relocated GRUB_ENV_BTRFS_OFFSET > > > > - Add patch "btrfs: update doc link for bootloader support" > > > > - Do better typedef > > > > - Add heads-up comments to both fs_envblk_spec and btrfs_head that they > > > > have to stay in sync > > > > - Fix a few places to use explicit checks for NULL, true/false etc > > > > - Use goto labels to cleanup consistently > > > > - Mark function names with trailing "()" in commits and comments > > > > - Rename envblk_fs to envblk_on_block for better clarity > > > > - Avoid redundant curly braces in if .. else if clause > > > > - Highlight overflow guard around envioronment block in embed_region > > > > - Rename a few functions for clarity > > > > - Use portable printf formats for off_t and size_t > > > > - Support z length modifier in GRUB printf format string > > > > - Add z modifier to printf unit test > > > > v5: > > > > - Move fs_envblk_spec table into "btrfs: add environment block to > > > > reserved header area" > > > > - Move "util/grub-editenv: add basic structures and probe call for > > > > external envblk" the 9th patch behind all wiring patches and rename it > > > > to "util/grub-editenv: add probe call for external envblk" as it now > > > > only does probing > > > > - Add fs_envblk_init() to wire open helper in the base structures into > > > > patch "util/grub-editenv: add fs_envblk open helper" > > > > - Add "Man 5 btrfs" an alternate to the doc link > > > > v6: > > > > - Move fs_envblk_spec structure typedef and variable from "btrfs: add > > > > environment block to reserved header area" into "util/grub-editenv: > > > > add fs_envblk open helper". The fs_envblk_spec remains empty since no > > > > Btrfs area is defined yet. > > > > - Reorder "btrfs: add environment block to reserved header area" to > > > > follow all groundwork patches, and provide the defined reserved area > > > > to fs_envblk_spec so that it becomes supported in grub-editenv. > > > > > > > > Michael Chang (12): > > > > misc: add z length modifier support > > > > tests: add z modifier printf tests > > > > util/grub-editenv: add fs_envblk open helper > > > > util/grub-editenv: add fs_envblk write helper > > > > util/grub-editenv: wire set_variables to optional fs_envblk > > > > util/grub-editenv: wire unset_variables to optional fs_envblk > > > > util/grub-editenv: wire list_variables to optional fs_envblk > > > > util/grub-editenv: add probe call for external envblk > > > > btrfs: add environment block to reserved header area > > > > 00_header.in: wire grub.cfg to use env_block when present > > > > docs: add Btrfs env block and special env vars > > > > btrfs: update doc link for bootloader support > > > > > > For all patches Reviewed-by: Daniel Kiper <[email protected]>... > > > > Sorry for resending this but it occurred to me that I was using the > > wrong email, so I'm asking again if this can land in time for GRUB 2.14? > > If you take a look at the GRUB git repository you will see that relevant > patches are in for a few days... >
So they are... Sorry about the noise. When I looked last week, they weren't there yet... ^_^; -- 真実はいつも一つ!/ Always, there's only one truth! _______________________________________________ Grub-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/grub-devel
