libfstools: get rid of "extroot_prefix" global variable
authorRafał Miłecki <rafal@milecki.pl>
Tue, 4 Jan 2022 22:17:29 +0000 (23:17 +0100)
committerRafał Miłecki <rafal@milecki.pl>
Tue, 11 Jan 2022 17:52:54 +0000 (18:52 +0100)
Replace it with mount_extroot() argument. It's cleaner than a global
var.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
libfstools/extroot.c
libfstools/libfstools.h
libfstools/overlay.c
mount_root.c

index 418df9494f7f4ba0a59f4efa3963c34c424d4f39..7cc0b194f16b59f0f779765a6c56b0e8e520d087 100644 (file)
 
 #include "libfstools.h"
 
-char const *extroot_prefix = NULL;
-
 /*
  * This will execute "block extroot" and make use of mounted extroot or return
  * an error.
  */
-int mount_extroot(void)
+int mount_extroot(char const *extroot_prefix)
 {
        char ldlib_path[32];
        char block_path[32];
@@ -37,9 +35,6 @@ int mount_extroot(void)
        struct stat s;
        pid_t pid;
 
-       if (!extroot_prefix)
-               return -1;
-
        /* try finding the library directory */
        snprintf(ldlib_path, sizeof(ldlib_path), "%s/upper/lib", extroot_prefix);
 
index 6aa0e41ae53481acf90e85be3a6387d35b044560..340e2dca3a25440802aabbf3c77610dcaef3e200 100644 (file)
@@ -39,8 +39,7 @@ enum fs_state {
        __FS_STATE_LAST = FS_STATE_READY,
 };
 
-extern char const *extroot_prefix;
-extern int mount_extroot(void);
+extern int mount_extroot(char const *extroot_prefix);
 extern int mount_snapshot(struct volume *v);
 extern int mount_overlay(struct volume *v);
 
index 352f0f23aff7f2c08f29873db24fe9b555e63e2b..26f0d6e49b911b9aae75f0fd4c23d340af2899b5 100644 (file)
@@ -435,8 +435,7 @@ int mount_overlay(struct volume *v)
         * Check for extroot config in overlay (rootfs_data) and if present then
         * prefer it over rootfs_data.
         */
-       extroot_prefix = "/tmp/overlay";
-       if (!mount_extroot()) {
+       if (!mount_extroot("/tmp/overlay")) {
                ULOG_INFO("switched to extroot\n");
                return 0;
        }
index ca2c31c3a9ed70fb22d90b5af92d59a9f406c392..d343909a9e0ccb6e898f57e1dd20500d7a400051 100644 (file)
@@ -45,8 +45,7 @@ start(int argc, char *argv[1])
        }
 
        /* Check for extroot config in rootfs before even trying rootfs_data */
-       extroot_prefix = "";
-       if (!mount_extroot()) {
+       if (!mount_extroot("")) {
                ULOG_NOTE("switched to extroot\n");
                return 0;
        }