]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Remove --offroot argument and default to always setting argv[0] to @
authorJes Sorensen <Jes.Sorensen@redhat.com>
Fri, 1 Feb 2013 15:15:17 +0000 (16:15 +0100)
committerNeilBrown <neilb@suse.de>
Tue, 5 Feb 2013 04:06:47 +0000 (15:06 +1100)
We still allow --offroot to be given - for compatibility with scripts
- but ignore it.

The whole point of --offroot is to get systemd to not auto-kill mdmon,
and we always want that.

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: NeilBrown <neilb@suse.de>
ReadMe.c
mdadm.8.in
mdadm.c
mdadm.h
mdmon.8
mdmon.c
util.c

index 4214cb055f7826448cabfaa25cb7d8ea08e7bfce..c4bb7301d0946bd49636f62dcc559b7b29b69c60 100644 (file)
--- a/ReadMe.c
+++ b/ReadMe.c
@@ -259,10 +259,6 @@ char OptionHelp[] =
 "  --query       -Q   : Display general information about how a\n"
 "                       device relates to the md driver\n"
 "  --auto-detect      : Start arrays auto-detected by the kernel\n"
-"  --offroot          : Set first character of argv[0] to @ to indicate the\n"
-"                       application was launched from initrd/initramfs and\n"
-"                       should not be shutdown by systemd as part of the\n"
-"                       regular shutdown process.\n"
 ;
 /*
 "\n"
index c1881cd7a5df92b3626a79d5705f07ff63357774..a3abc2d228247127759165050b198714398c8758 100644 (file)
@@ -255,17 +255,6 @@ Avoid printing purely informative messages.  With this,
 .I mdadm
 will be silent unless there is something really important to report.
 
-.TP
-.BR \-\-offroot
-Set first character of argv[0] to @ to indicate mdadm was launched
-from initrd/initramfs and should not be shutdown by systemd as part of
-the regular shutdown process. This option is normally only used by
-the system's initscripts. Please see here for more details on how
-systemd handled argv[0]:
-.IP
-.B http://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons
-.PP
-
 
 .TP
 .BR \-f ", " \-\-force
diff --git a/mdadm.c b/mdadm.c
index 26e8ceca164097fe11ea2f3ce29b65c781d5b43a..f22fd7bad9b945e6e00f90f388eaba9a4e31d9de 100644 (file)
--- a/mdadm.c
+++ b/mdadm.c
@@ -116,6 +116,13 @@ int main(int argc, char *argv[])
        ident.container = NULL;
        ident.member = NULL;
 
+       /*
+        * set first char of argv[0] to @. This is used by
+        * systemd to signal that the task was launched from
+        * initrd/initramfs and should be preserved during shutdown
+        */
+       argv[0][0] = '@';
+
        while ((option_index = -1) ,
               (opt=getopt_long(argc, argv,
                                shortopt, long_options,
@@ -159,14 +166,8 @@ int main(int argc, char *argv[])
                                c.homehost = optarg;
                        continue;
 
-               /*
-                * --offroot sets first char of argv[0] to @. This is used
-                * by systemd to signal that the task was launched from
-                * initrd/initramfs and should be preserved during shutdown
-                */
                case OffRootOpt:
-                       argv[0][0] = '@';
-                       __offroot = 1;
+                       /* Silently ignore old option */
                        continue;
 
                case Prefer:
diff --git a/mdadm.h b/mdadm.h
index be760d26980d82a14a72e1c52891b3e1e07441bf..a761f298690855c17b8f274c2c0814daad29e68f 100644 (file)
--- a/mdadm.h
+++ b/mdadm.h
@@ -1487,5 +1487,3 @@ char *xstrdup(const char *str);
 #define INVALID_SECTORS 1
 /* And another special number needed for --data_offset=variable */
 #define VARIABLE_OFFSET 3
-
-extern int __offroot;
diff --git a/mdmon.8 b/mdmon.8
index 598d904852597c0e405d1ea523ee4de247402728..559dd903d44df5cca69eafeb7c5ec7c1a7777606 100644 (file)
--- a/mdmon.8
+++ b/mdmon.8
@@ -5,7 +5,7 @@ mdmon \- monitor MD external metadata arrays
 
 .SH SYNOPSIS
 
-.BI mdmon " [--all] [--takeover] [--offroot] CONTAINER"
+.BI mdmon " [--all] [--takeover] CONTAINER"
 
 .SH OVERVIEW
 The 2.6.27 kernel brings the ability to support external metadata arrays.
@@ -166,15 +166,6 @@ containers with names longer than 5 characters, this argument can be
 arbitrarily extended, e.g. to
 .BR \-\-all-active-arrays .
 .TP
-.BR \-\-offroot
-Set first character of argv[0] to @ to indicate mdmon was launched
-from initrd/initramfs and should not be shutdown by systemd as part of
-the regular shutdown process. This option is normally only used by
-the system's initscripts. Please see here for more details on how
-systemd handled argv[0]:
-.IP
-.B http://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons
-.PP
 
 .PP
 Note that
diff --git a/mdmon.c b/mdmon.c
index 5d5ae94e372105f7f4a3c2879b87143b5b38c6df..8720aa539c40c796e3096e34c2d8b36d20be13e8 100644 (file)
--- a/mdmon.c
+++ b/mdmon.c
@@ -184,9 +184,6 @@ static void try_kill_monitor(pid_t pid, char *devname, int sock)
        buf[sizeof(buf)-1] = 0;
        close(fd);
 
-       /* Note that if started with --offroot, the name
-        * might be "@dmon"
-        */
        if (n < 0 || !(strstr(buf, "mdmon") ||
                       strstr(buf, "@dmon")))
                return;
@@ -276,10 +273,6 @@ void usage(void)
 "  --help        -h   : This message\n"
 "  --all              : All devices\n"
 "  --takeover    -t   : Takeover container\n"
-"  --offroot          : Set first character of argv[0] to @ to indicate the\n"
-"                       application was launched from initrd/initramfs and\n"
-"                       should not be shutdown by systemd as part of the\n"
-"                       regular shutdown process.\n"
 );
        exit(2);
 }
@@ -303,6 +296,11 @@ int main(int argc, char *argv[])
                {NULL, 0, NULL, 0}
        };
 
+       /*
+        * Always change process name to @dmon to avoid systemd killing it
+        */
+       argv[0][0] = '@';
+
        while ((opt = getopt_long(argc, argv, "tha", options, NULL)) != -1) {
                switch (opt) {
                case 'a':
@@ -313,7 +311,7 @@ int main(int argc, char *argv[])
                        takeover = 1;
                        break;
                case OffRootOpt:
-                       argv[0][0] = '@';
+                       /* silently ignore old option */
                        break;
                case 'h':
                default:
diff --git a/util.c b/util.c
index fc9043bf2345e6ef8debe15cde317533226e8452..e75b75493c4c0ff0d80604a5335676552a077d33 100644 (file)
--- a/util.c
+++ b/util.c
@@ -32,8 +32,6 @@
 #include       <dirent.h>
 #include       <signal.h>
 
-int __offroot;
-
 /*
  * following taken from linux/blkpg.h because they aren't
  * anywhere else and it isn't safe to #include linux/ * stuff.
@@ -1674,15 +1672,8 @@ int start_mdmon(int devnum)
 
                for (i = 0; paths[i]; i++)
                        if (paths[i][0]) {
-                               if (__offroot) {
-                                       execl(paths[i], "mdmon", "--offroot",
-                                             devnum2devname(devnum),
-                                             NULL);
-                               } else {
-                                       execl(paths[i], "mdmon",
-                                             devnum2devname(devnum),
-                                             NULL);
-                               }
+                               execl(paths[i], "mdmon",
+                                     devnum2devname(devnum), NULL);
                        }
                exit(1);
        case -1: pr_err("cannot run mdmon. "