On Wed, Sep 17, 2025 at 10:38:17PM +0530, Avnish Chouhan wrote: > On 2025-09-15 14:39, [email protected] wrote: > > Message: 1 > > Date: Mon, 15 Sep 2025 17:08:43 +0800 > > From: Michael Chang <[email protected]> > > To: The development of GNU GRUB <[email protected]> > > Cc: Neal Gompa <[email protected]>, Marta Lewandowska > > <[email protected]> > > Subject: [PATCH v2 4/9] util/grub-editenv: wire set_variables to > > optional fs_envblk > > Message-ID: <[email protected]> > > > > This patch changes set_variables so that it can use an external > > environment block when one is present. The variable next_entry is > > written into the external block, env_block is treated as read only, and > > all other variables are written into the normal file based envblk. > > > > A cleanup step is added to handle cases where GRUB at runtime writes > > variables into the external block because file based updates are not > > safe on a copy on write filesystem such as Btrfs. For example, the > > savedefault command can update saved_entry, and on Btrfs GRUB will place > > that update in the external block instead of the file envblk. If an > > older copy remains in the external block, it would override the newer > > value from the file envblk when GRUB first loads the file and then > > applies the external block on top of it. To avoid this, whenever a > > variable is updated in the file envblk, any same named key in the > > external block is deleted. > > > > Signed-off-by: Michael Chang <[email protected]> > > --- > > util/grub-editenv.c | 55 +++++++++++++++++++++++++++++++++++++++++++-- > > 1 file changed, 53 insertions(+), 2 deletions(-) > > > > diff --git a/util/grub-editenv.c b/util/grub-editenv.c > > index 26a81d2d0..d47adeb5e 100644 > > --- a/util/grub-editenv.c > > +++ b/util/grub-editenv.c > > @@ -394,12 +394,33 @@ fs_envblk_write (grub_envblk_t envblk) > > fclose (fp); > > } > > > > +struct var_lookup_ctx { > > + const char *varname; > > + bool found; > > +}; > > + > > +static int > > +var_lookup_iter (const char *varname, const char *value __attribute__ > > ((unused)), void *hook_data) > > +{ > > + struct var_lookup_ctx *ctx = (struct var_lookup_ctx *)hook_data; > > Hi Michael, > > Missing a space before "hook_data;"
OK. I'll put a space the cast operator. Thanks, Michael > > Thank you! > > Regards, > Avnish Chouhan > > **** > > Reviewed-by: Avnish Chouhan <[email protected]> > _______________________________________________ Grub-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/grub-devel
