]> sourceware.org Git - lvm2.git/commitdiff
temp notes on dealing with cascade
authorAlasdair Kergon <agk@redhat.com>
Fri, 2 Sep 2011 01:59:07 +0000 (01:59 +0000)
committerAlasdair Kergon <agk@redhat.com>
Fri, 2 Sep 2011 01:59:07 +0000 (01:59 +0000)
lib/commands/toolcontext.c
lib/config/config.c

index 34fb99729fa1748a6b2f5ed763079c943c0dfe51..cdfb153c489109da1f862c7ff4738c8072f3610b 100644 (file)
@@ -608,6 +608,7 @@ static struct dm_config_tree *_destroy_tag_configs(struct cmd_context *cmd)
        struct config_tree_list *cfl;
        struct dm_config_tree *cft_cmdline = NULL, *cft;
 
+// FIXME No need for this - only one config tree now
        cft = dm_config_remove_cascaded_tree(cmd->cft);
        if (cft) {
                cft_cmdline = cmd->cft;
@@ -1429,6 +1430,7 @@ int refresh_toolcontext(struct cmd_context *cmd)
        }
        dev_cache_exit();
        _destroy_tags(cmd);
+// FIXME Use cmd->cft_cmdline instead here.
        cft_cmdline = _destroy_tag_configs(cmd);
 
        cmd->config_valid = 0;
@@ -1441,6 +1443,7 @@ int refresh_toolcontext(struct cmd_context *cmd)
        /* Temporary duplicate cft pointer holding lvm.conf - replaced later */
        cft_tmp = cmd->cft;
        if (cft_cmdline)
+// FIXME Use cmd->cft_cmdline (convert string to cft again?) and merge instead
                cmd->cft = dm_config_insert_cascaded_tree(cft_cmdline, cft_tmp);
 
        /* Uses cmd->cft i.e. cft_cmdline + lvm.conf */
@@ -1454,11 +1457,15 @@ int refresh_toolcontext(struct cmd_context *cmd)
        if (!_init_tag_configs(cmd))
                return 0;
 
+// FIXME Will need to use a fresh copy of the lvm.conf cft as the original
+// FIXME got destroyed when cft_cmdline was merged into it
        /* Merge all the tag config files with lvm.conf, returning a
         * fresh cft pointer in place of cft_tmp. */
        if (!(cmd->cft = _merge_config_files(cmd, cft_tmp)))
                return 0;
 
+// FIXME Merge instead - but keep a clean copy of cmd->cft at this point
+// FIXME so we can easily 'remove' the effect of cft_cmdline after each cmd
        /* Finally we can make the proper, fully-merged, cmd->cft */
        if (cft_cmdline)
                cmd->cft = dm_config_insert_cascaded_tree(cft_cmdline, cmd->cft);
@@ -1509,6 +1516,8 @@ void destroy_toolcontext(struct cmd_context *cmd)
                dm_pool_destroy(cmd->mem);
        dev_cache_exit();
        _destroy_tags(cmd);
+
+// FIXME destroy_tag_configs handles this itself again
        if ((cft_cmdline = _destroy_tag_configs(cmd)))
                dm_config_destroy(cft_cmdline);
        if (cmd->libmem)
index 00dc5c388e63255adfc5a49e992c946586fae5ac..2ed7bc7353d67c96f25a0184f269c639ea413eb3 100644 (file)
@@ -45,6 +45,7 @@ void destroy_config_tree(struct dm_config_tree *cft)
  */
 struct dm_config_tree *remove_overridden_config_tree(struct cmd_context *cmd)
 {
+// FIXME Replace cmd->cft with clean copy of merged lvm*.conf tree
        struct dm_config_tree *old_cft = cmd->cft;
        struct dm_config_tree *cft = dm_config_remove_cascaded_tree(cmd->cft);
 
@@ -56,6 +57,8 @@ struct dm_config_tree *remove_overridden_config_tree(struct cmd_context *cmd)
        return old_cft;
 }
 
+// FIXME Retain a copy of the string (or tree?) in cmd->cft_cmdline
+// FIXME and merge into cmd->cft
 int override_config_tree_from_string(struct cmd_context *cmd,
                                     const char *config_settings)
 {
This page took 0.03349 seconds and 5 git commands to generate.