]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - Create.c
mdadm: add an environment variable to prevent auto-launching mdmon
[thirdparty/mdadm.git] / Create.c
index 8abc2990a0a2bd215b87bc682ee8114e2400eb06..c51b7eb04ddd7e83d0f8a8f4d3590f3b6a85ed3c 100644 (file)
--- a/Create.c
+++ b/Create.c
@@ -520,9 +520,27 @@ int Create(struct supertype *st, char *mddev, int mdfd,
        total_slots = info.array.nr_disks;
        st->ss->getinfo_super(st, &info);
 
-       if (did_default)
-               fprintf(stderr, Name ": Defaulting to version"
-                       " %s metadata\n", info.text_version);
+       if (did_default && verbose >= 0) {
+               if (info.text_version[0] == '/') {
+                       int dnum = devname2devnum(info.text_version+1);
+                       char *path;
+                       int mdp = get_mdp_major();
+                       struct mdinfo *mdi;
+                       if (dnum > 0)
+                               path = map_dev(MD_MAJOR, dnum, 1);
+                       else
+                               path = map_dev(mdp, (-1-dnum)<< 6, 1);
+
+                       mdi = sysfs_read(-1, dnum, GET_VERSION);
+
+                       fprintf(stderr, Name ": Creating array inside "
+                               "%s container %s\n", 
+                               mdi?mdi->text_version:"managed", path);
+                       sysfs_free(mdi);
+               } else
+                       fprintf(stderr, Name ": Defaulting to version"
+                               " %s metadata\n", info.text_version);
+       }
 
        if (bitmap_file && vers < 9003) {
                major_num = BITMAP_MAJOR_HOSTENDIAN;
@@ -749,7 +767,7 @@ int Create(struct supertype *st, char *mddev, int mdfd,
                if (verbose >= 0)
                        fprintf(stderr, Name ": array %s started.\n", mddev);
                if (st->ss->external && st->subarray[0]) {
-                       if (need_mdmon) {
+                       if (need_mdmon && !env_no_mdmon()) {
                                int dn = st->container_dev;
                                int i;
                                switch(fork()) {