Skip to content

Commit

Permalink
lib/sysroot: Add comments and debug statements around sysroot parsing
Browse files Browse the repository at this point in the history
Was looking at this code more closely today to investigate issues
related to bootlink mismatches (ostreedev#2283).
  • Loading branch information
jlebon committed Mar 2, 2021
1 parent fd9d422 commit 02b6197
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion src/libostree/ostree-sysroot.c
Original file line number Diff line number Diff line change
Expand Up @@ -449,6 +449,7 @@ _ostree_sysroot_parse_deploy_path_name (const char *name,
return TRUE;
}

/* For a given bootversion, get its subbootversion from `/ostree/boot.$bootversion`. */
gboolean
_ostree_sysroot_read_current_subbootversion (OstreeSysroot *self,
int bootversion,
Expand All @@ -465,6 +466,7 @@ _ostree_sysroot_read_current_subbootversion (OstreeSysroot *self,
return FALSE;
if (errno == ENOENT)
{
g_debug ("Didn't find $sysroot/ostree/boot.%d symlink; assuming subbootversion 0", bootversion);
*out_subbootversion = 0;
}
else
Expand Down Expand Up @@ -516,6 +518,7 @@ compare_loader_configs_for_sorting (gconstpointer a_pp,
return compare_boot_loader_configs (a, b);
}

/* Read all the bootconfigs from `/boot/loader/`. */
gboolean
_ostree_sysroot_read_boot_loader_configs (OstreeSysroot *self,
int bootversion,
Expand Down Expand Up @@ -574,6 +577,7 @@ _ostree_sysroot_read_boot_loader_configs (OstreeSysroot *self,
return TRUE;
}

/* Get the bootversion from the `/boot/loader` symlink. */
static gboolean
read_current_bootversion (OstreeSysroot *self,
int *out_bootversion,
Expand All @@ -587,6 +591,7 @@ read_current_bootversion (OstreeSysroot *self,
return FALSE;
if (errno == ENOENT)
{
g_debug ("Didn't find $sysroot/boot/loader symlink; assuming bootversion 0");
ret_bootversion = 0;
}
else
Expand Down Expand Up @@ -698,7 +703,7 @@ parse_deployment (OstreeSysroot *self,
return FALSE;

g_autofree char *errprefix =
g_strdup_printf ("Parsing deployment %i in stateroot '%s'", treebootserial, osname);
g_strdup_printf ("Parsing deployment %s in stateroot '%s'", boot_link, osname);
GLNX_AUTO_PREFIX_ERROR(errprefix, error);

const char *relative_boot_link = boot_link;
Expand Down Expand Up @@ -799,6 +804,8 @@ get_ostree_kernel_arg_from_config (OstreeBootconfigParser *config)
return NULL;
}

/* From a BLS config, use its ostree= karg to find the deployment it points to and add it to
* the inout_deployments array. */
static gboolean
list_deployments_process_one_boot_entry (OstreeSysroot *self,
OstreeBootconfigParser *config,
Expand Down Expand Up @@ -1016,6 +1023,9 @@ _ostree_sysroot_reload_staged (OstreeSysroot *self,
return TRUE;
}

/* Loads the current bootversion, subbootversion, and deplyments, starting from the
* bootloader configs which are the source of truth.
*/
static gboolean
sysroot_load_from_bootloader_configs (OstreeSysroot *self,
GCancellable *cancellable,
Expand Down

0 comments on commit 02b6197

Please sign in to comment.