Hello,
the following patch aims at solving an issue that is confusing a lot of
users.
when using udev, device files are created only when devices are
registered with the kernel, and md devices are registered only when
started.
mdadm needs the device file _before_ starting the array.
so when using udev you must add --auto=yes to the mdadm commandline or
to the ARRAY line in mdadm.conf

following patch makes auto=yes the default when using udev

L.


--
Luca Berra -- [EMAIL PROTECTED]
       Communication Media & Services S.r.l.
/"\
\ /     ASCII RIBBON CAMPAIGN
 X        AGAINST HTML MAIL
/ \
* Sat Jun 24 2006 Luca Berra <[EMAIL PROTECTED]>
- automatically create devices if using udev

--- mdadm-2.5.1/mdadm.c.autof   2006-06-02 01:51:01.000000000 -0400
+++ mdadm-2.5.1/mdadm.c 2006-06-24 05:17:45.000000000 -0400
@@ -857,6 +857,13 @@
                fputs(Usage, stderr);
                exit(2);
        }
+
+       /* if we are using udev and auto is not set, mdadm will almost
+        * certainly fail, so we force it here.
+        */
+       if (autof == 0 && access("/dev/.udevdb",F_OK) == 0)
+               autof=2;
+
        /* Ok, got the option parsing out of the way
         * hopefully it's mostly right but there might be some stuff
         * missing
@@ -873,7 +880,7 @@
                        fprintf(stderr, Name ": an md device must be given in 
this mode\n");
                        exit(2);
                }
-               if ((int)ident.super_minor == -2 && autof) {
+               if ((int)ident.super_minor == -2 && autof > 2 ) {
                        fprintf(stderr, Name ": --super-minor=dev is 
incompatible with --auto\n");      
                        exit(2);
                }

Reply via email to