]> sourceware.org Git - lvm2.git/commitdiff
Create global is_static() to eliminate from the library init function.
authorDave Wysochanski <dwysocha@redhat.com>
Thu, 18 Dec 2008 05:27:17 +0000 (05:27 +0000)
committerDave Wysochanski <dwysocha@redhat.com>
Thu, 18 Dec 2008 05:27:17 +0000 (05:27 +0000)
Very simple / crude method of removing 'is_static' from initialization.
Why should we require an application tell us whether it is linked
statically or dynamically to libLVM?  If the application is linked
statically, but libraries exist and dlopen() calls succeed, why
do we care if it's statically linked?

15 files changed:
daemons/clvmd/lvm-functions.c
lib/commands/toolcontext.c
lib/commands/toolcontext.h
lib/locking/locking.c
lib/lvm2.h
lib/misc/lvm-globals.c
lib/misc/lvm-globals.h
lib/misc/sharedlib.c
tools/lvchange.c
tools/lvm-static.c
tools/lvm.c
tools/lvm2cmdline.h
tools/lvmcmdlib.c
tools/lvmcmdline.c
tools/vgchange.c

index 7250e04acf6c48d564a5b00e56a35bf6e37c3524..c74bf26ff7084cc06304d6ad2a3d9a58f448f24b 100644 (file)
@@ -724,7 +724,7 @@ void lvm_do_backup(const char *vgname)
 /* Called to initialise the LVM context of the daemon */
 int init_lvm(int using_gulm)
 {
-       if (!(cmd = create_toolcontext(0, 1))) {
+       if (!(cmd = create_toolcontext(1))) {
                log_error("Failed to allocate command context");
                return 0;
        }
index cda9057960028b7342c964d7a04a85a8963fdcb0..0a98325ebc43aa4c80714ab4ead1f8d8eac1dc4e 100644 (file)
@@ -738,7 +738,7 @@ static int _init_formats(struct cmd_context *cmd)
 
 #ifdef HAVE_LIBDL
        /* Load any formats in shared libs if not static */
-       if (!cmd->is_static &&
+       if (!is_static() &&
            (cn = find_config_tree_node(cmd, "global/format_libraries"))) {
 
                struct config_value *cv;
@@ -848,7 +848,7 @@ static int _init_segtypes(struct cmd_context *cmd)
 
 #ifdef HAVE_LIBDL
        /* Load any formats in shared libs unless static */
-       if (!cmd->is_static &&
+       if (!is_static() &&
            (cn = find_config_tree_node(cmd, "global/segment_libraries"))) {
 
                struct config_value *cv;
@@ -998,8 +998,7 @@ static void _init_globals(struct cmd_context *cmd)
 }
 
 /* Entry point */
-struct cmd_context *create_toolcontext(unsigned is_static,
-                                      unsigned is_long_lived)
+struct cmd_context *create_toolcontext(unsigned is_long_lived)
 {
        struct cmd_context *cmd;
 
@@ -1021,7 +1020,6 @@ struct cmd_context *create_toolcontext(unsigned is_static,
                return NULL;
        }
        memset(cmd, 0, sizeof(*cmd));
-       cmd->is_static = is_static;
        cmd->is_long_lived = is_long_lived;
        cmd->handles_missing_pvs = 0;
        cmd->hosttags = 0;
index 3c7dfea5689edabab6be250501b33d6f3057692f..7d2aef9cad653aa51e6c94746f8883db21d0f42f 100644 (file)
@@ -66,7 +66,6 @@ struct cmd_context {
        char *cmd_line;
        struct command *command;
        char **argv;
-       unsigned is_static:1;   /* Static binary? */
        unsigned is_long_lived:1;       /* Optimises persistent_filter handling */
        unsigned handles_missing_pvs:1;
        unsigned partial_activation:1;
@@ -95,7 +94,7 @@ struct cmd_context {
        char sysfs_dir[PATH_MAX];
 };
 
-struct cmd_context *create_toolcontext(unsigned is_static, unsigned is_long_lived);
+struct cmd_context *create_toolcontext(unsigned is_long_lived);
 void destroy_toolcontext(struct cmd_context *cmd);
 int refresh_toolcontext(struct cmd_context *cmd);
 int config_files_changed(struct cmd_context *cmd);
index aa008ff0980848f7ddbf5c8e7e70f0605a1f1be5..b5871ae11f2ef407cfb9af9bc0f2bd55ae0f2c28 100644 (file)
@@ -228,7 +228,7 @@ int init_locking(int type, struct cmd_context *cmd)
 
 #ifdef HAVE_LIBDL
        case 2:
-               if (!cmd->is_static) {
+               if (!is_static()) {
                        log_very_verbose("External locking selected.");
                        if (init_external_locking(&_locking, cmd))
                                return 1;
index 75c002a157aa08ed62ab1d61ec6db594ddbde1b6..b18ceadcc586244723f485577547f683039ece03 100644 (file)
@@ -24,7 +24,7 @@
  */
 struct arg;
 struct cmd_context;
-struct cmd_context *create_toolcontext(unsigned is_static, unsigned is_long_lived);
+struct cmd_context *create_toolcontext(unsigned is_long_lived);
 void destroy_toolcontext(struct cmd_context *cmd);
 
 /*
@@ -37,7 +37,7 @@ lvm_handle_t lvm2_create(void);
  * NULL: Fail - unable to initialise handle.
  * non-NULL: Success - valid LVM2 handle returned
  */
-#define lvm2_create(X) create_toolcontext(0,1)
+#define lvm2_create(X) create_toolcontext(1)
 
 /*
  * lvm2_destroy
index 45114c8eeebb247f14ae3e5873e2dbf8407b2d64..870b2d7c528f52d8f1876f1fd777ef992fd68178 100644 (file)
@@ -38,6 +38,7 @@ static int _mirror_in_sync = 0;
 static int _dmeventd_monitor = DEFAULT_DMEVENTD_MONITOR;
 static int _ignore_suspended_devices = 0;
 static int _error_message_produced = 0;
+static unsigned _is_static = 0;
 
 void init_verbose(int level)
 {
@@ -106,6 +107,11 @@ void init_cmd_name(int status)
        _log_cmd_name = status;
 }
 
+void init_is_static(unsigned value)
+{
+       _is_static = value;
+}
+
 void set_cmd_name(const char *cmd)
 {
        strncpy(_cmd_name, cmd, sizeof(_cmd_name));
@@ -199,3 +205,8 @@ int debug_level()
 {
        return _debug_level;
 }
+
+unsigned is_static(void)
+{
+       return _is_static;
+}
index 8c354f5dc7c769541cce2c923e811a84e1c66d4b..8209b3ec73e00e4aee6c2a490f1e724f3b08fe65 100644 (file)
@@ -34,6 +34,7 @@ void init_mirror_in_sync(int in_sync);
 void init_dmeventd_monitor(int reg);
 void init_ignore_suspended_devices(int ignore);
 void init_error_message_produced(int produced);
+void init_is_static(unsigned value);
 
 void set_cmd_name(const char *cmd_name);
 
@@ -50,6 +51,7 @@ int security_level(void);
 int mirror_in_sync(void);
 int ignore_suspended_devices(void);
 const char *log_command_name(void);
+unsigned is_static(void);
 
 #define DMEVENTD_MONITOR_IGNORE -1
 int dmeventd_monitor_mode(void);
index 7622e47d828d88fa969162e55992604de6e293d7..cab2909e6877734c4b7091d9359a5c021188acfe 100644 (file)
@@ -44,7 +44,7 @@ void *load_shared_library(struct cmd_context *cmd, const char *libname,
        char path[PATH_MAX];
        void *library;
 
-       if (cmd->is_static) {
+       if (is_static()) {
                log_error("Not loading shared %s library %s in static mode.",
                          desc, libname);
                return NULL;
index 3c2fa19a29118aaa4032a46fd14f3cee6a07d8d7..66b487451d157c9705e6a2a2f326b19dc7392e21 100644 (file)
@@ -597,7 +597,7 @@ static int lvchange_single(struct cmd_context *cmd, struct logical_volume *lv,
        }
 
        init_dmeventd_monitor(arg_int_value(cmd, monitor_ARG,
-                                           (cmd->is_static || arg_count(cmd, ignoremonitoring_ARG)) ?
+                                           (is_static() || arg_count(cmd, ignoremonitoring_ARG)) ?
                                            DMEVENTD_MONITOR_IGNORE : DEFAULT_DMEVENTD_MONITOR));
 
        /* access permission change */
index b0c1e12a3bfc65a05dcef712eef2f2a44c4c16fd..822989f9a5cadf2b407070355224856407e7adbf 100644 (file)
@@ -17,7 +17,8 @@
 
 int main(int argc, char **argv)
 {
-       return lvm2_main(argc, argv, 1);
+       init_is_static(1);
+       return lvm2_main(argc, argv);
 }
 
 int lvm_shell(struct cmd_context *cmd __attribute((unused)),
index 3576515df97f55ffa1b57d7f23dcce9191bfdda8..e1f7900cae6b63ca527801018471373d5862bfc9 100644 (file)
@@ -18,7 +18,7 @@
 
 int main(int argc, char **argv)
 {
-       return lvm2_main(argc, argv, 0);
+       return lvm2_main(argc, argv);
 }
 
 #ifdef READLINE_SUPPORT
index f1741792c17cd3c0dcff6da758b0b0391b128168..f4855e73d9e1205f6e3138a2b931addbad524f36 100644 (file)
@@ -26,12 +26,12 @@ struct cmdline_context {
         int interactive;
 };
 
-int lvm2_main(int argc, char **argv, unsigned is_static);
+int lvm2_main(int argc, char **argv);
 
 void *cmdlib_lvm2_init(unsigned is_static);
 void lvm_fin(struct cmd_context *cmd);
 
-struct cmd_context *init_lvm(unsigned is_static);
+struct cmd_context *init_lvm(void);
 void lvm_register_commands(void);
 int lvm_split(char *str, int *argc, char **argv, int max);
 int lvm_run_command(struct cmd_context *cmd, int argc, char **argv);
index 6507accd5c5ce442807c16f9ae095f0a10edaabb..1a90c927cc9c2d35c9bef2009b67ecc2dea8177f 100644 (file)
 #include <time.h>
 #include <sys/resource.h>
 
-void *cmdlib_lvm2_init(unsigned is_static)
+void *cmdlib_lvm2_init(unsigned static_compile)
 {
        struct cmd_context *cmd;
 
        lvm_register_commands();
 
-       if (!(cmd = init_lvm(is_static)))
+       init_is_static(static_compile);
+       if (!(cmd = init_lvm()))
                return NULL;
 
        return (void *) cmd;
index 95dcfbeb0b20e909e8c2ead3a4d57611cf8d0d11..f4a19e5f486db01ef41eebcf8a0e676a6c3c75d9 100644 (file)
@@ -1147,13 +1147,13 @@ static void _close_stray_fds(const char *command)
                                  parent_cmdline);
 }
 
-struct cmd_context *init_lvm(unsigned is_static)
+struct cmd_context *init_lvm(void)
 {
        struct cmd_context *cmd;
 
        _cmdline.the_args = &_the_args[0];
 
-       if (!(cmd = create_toolcontext(is_static, 0)))
+       if (!(cmd = create_toolcontext(0)))
                return_NULL;
 
        return cmd;
@@ -1272,7 +1272,7 @@ static void _nonroot_warning(void)
                log_warn("WARNING: Running as a non-root user. Functionality may be unavailable.");
 }
 
-int lvm2_main(int argc, char **argv, unsigned is_static)
+int lvm2_main(int argc, char **argv)
 {
        const char *base;
        int ret, alias = 0;
@@ -1285,7 +1285,7 @@ int lvm2_main(int argc, char **argv, unsigned is_static)
 
        _close_stray_fds(base);
 
-       if (is_static && strcmp(base, "lvm.static") &&
+       if (is_static() && strcmp(base, "lvm.static") &&
            path_exists(LVM_SHARED_PATH) &&
            !getenv("LVM_DID_EXEC")) {
                setenv("LVM_DID_EXEC", base, 1);
@@ -1293,7 +1293,7 @@ int lvm2_main(int argc, char **argv, unsigned is_static)
                unsetenv("LVM_DID_EXEC");
        }
 
-       if (!(cmd = init_lvm(is_static)))
+       if (!(cmd = init_lvm()))
                return -1;
 
        cmd->argv = argv;
index f2df83649fa91fc4183749505c87faa62f5c6f46..f5d01971313e9d158a46f596325821787c82b74c 100644 (file)
@@ -540,7 +540,7 @@ static int vgchange_single(struct cmd_context *cmd, const char *vg_name,
        }
 
        init_dmeventd_monitor(arg_int_value(cmd, monitor_ARG,
-                                           (cmd->is_static || arg_count(cmd, ignoremonitoring_ARG)) ?
+                                           (is_static() || arg_count(cmd, ignoremonitoring_ARG)) ?
                                            DMEVENTD_MONITOR_IGNORE : DEFAULT_DMEVENTD_MONITOR));
 
        if (arg_count(cmd, available_ARG))
This page took 0.057473 seconds and 5 git commands to generate.