[lib] don't pretend config file has setup parameters
authorChristophe Varoqui <christophe.varoqui@opensvc.com>
Thu, 21 Jan 2010 22:46:19 +0000 (23:46 +0100)
committerChristophe Varoqui <christophe.varoqui@opensvc.com>
Thu, 21 Jan 2010 23:32:33 +0000 (00:32 +0100)
we already have fallbacks coming from propsel.c functions.
This change make 'multipath -v3' correctly report what set
the value of a parameter (mpe, hwe, cf or internal)

libmultipath/config.c
libmultipath/propsel.c

index e7e962e..fbe2125 100644 (file)
@@ -520,32 +520,12 @@ load_config (char * file)
                if (!conf->mptable)
                        goto out;
        }
-       if (conf->selector == NULL)
-               conf->selector = set_default(DEFAULT_SELECTOR);
-
        if (conf->udev_dir == NULL)
                conf->udev_dir = set_default(DEFAULT_UDEVDIR);
 
-       if (conf->getuid == NULL)
-               conf->getuid = set_default(DEFAULT_GETUID);
-
-       if (conf->features == NULL)
-               conf->features = set_default(DEFAULT_FEATURES);
-
-       if (conf->hwhandler == NULL)
-               conf->hwhandler = set_default(DEFAULT_HWHANDLER);
-
-       if (!conf->selector  || !conf->udev_dir || !conf->multipath_dir ||
-           !conf->getuid    || !conf->features ||
-           !conf->hwhandler)
+       if (!conf->udev_dir || !conf->multipath_dir)
                goto out;
 
-       if (!conf->prio_name)
-               conf->prio_name = set_default(DEFAULT_PRIO);
-
-       if (!conf->checker_name)
-               conf->checker_name = set_default(DEFAULT_CHECKER);
-
        return 0;
 out:
        free_config(conf);
index b534ae2..efaa31b 100644 (file)
@@ -203,7 +203,13 @@ select_selector (struct multipath * mp)
                        mp->alias, mp->selector);
                return 0;
        }
-       mp->selector = conf->selector;
+       if (conf->selector) {
+               mp->selector = conf->selector;
+               condlog(3, "%s: selector = %s (config file default)",
+                       mp->alias, mp->selector);
+               return 0;
+       }
+       mp->selector = set_default(DEFAULT_SELECTOR);
        condlog(3, "%s: selector = %s (internal default)",
                mp->alias, mp->selector);
        return 0;
@@ -244,7 +250,13 @@ select_features (struct multipath * mp)
                        mp->alias, mp->features);
                return 0;
        }
-       mp->features = conf->features;
+       if (conf->features) {
+               mp->features = conf->features;
+               condlog(3, "%s: features = %s (config file default)",
+                       mp->alias, mp->features);
+               return 0;
+       }
+       mp->features = set_default(DEFAULT_FEATURES);
        condlog(3, "%s: features = %s (internal default)",
                mp->alias, mp->features);
        return 0;
@@ -259,7 +271,13 @@ select_hwhandler (struct multipath * mp)
                        mp->alias, mp->hwhandler);
                return 0;
        }
-       mp->hwhandler = conf->hwhandler;
+       if (conf->hwhandler) {
+               mp->hwhandler = conf->hwhandler;
+               condlog(3, "%s: hwhandler = %s (config file default)",
+                       mp->alias, mp->hwhandler);
+               return 0;
+       }
+       mp->hwhandler = set_default(DEFAULT_HWHANDLER);
        condlog(3, "%s: hwhandler = %s (internal default)",
                mp->alias, mp->hwhandler);
        return 0;