modprobe: fix modprobe -r. closes bug 315
authorDenys Vlasenko <vda.linux@googlemail.com>
Tue, 26 May 2009 10:48:34 +0000 (12:48 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Tue, 26 May 2009 10:48:34 +0000 (12:48 +0200)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
modutils/modprobe.c

index d57dbdf..54cd84c 100644 (file)
@@ -114,7 +114,9 @@ static void add_probe(const char *name)
        struct module_entry *m;
 
        m = get_or_add_modentry(name);
-       if (m->flags & MODULE_FLAG_LOADED) {
+       if (!(option_mask32 & MODPROBE_OPT_REMOVE)
+        && (m->flags & MODULE_FLAG_LOADED)
+       ) {
                DBG("skipping %s, it is already loaded", name);
                return;
        }
@@ -350,7 +352,7 @@ int modprobe_main(int argc UNUSED_PARAM, char **argv)
                config_close(parser);
        }
 
-       if (opt & MODPROBE_OPT_INSERT_ALL) {
+       if (opt & (MODPROBE_OPT_INSERT_ALL | MODPROBE_OPT_REMOVE)) {
                /* Each argument is a module name */
                do {
                        DBG("adding module %s", *argv);