File dosfstools-mdraid-partition.patch of Package dosfstools

Index: src/mkdosfs.c
===================================================================
--- src/mkdosfs.c.orig
+++ src/mkdosfs.c
@@ -1763,10 +1763,11 @@ main (int argc, char **argv)
      * this is a MO disk I introduce a -I (ignore) switch.  -Joey
      */
     if (!ignore_full_disk && (
-	(statbuf.st_rdev & 0xff3f) == 0x0300 || /* hda, hdb */
-	(statbuf.st_rdev & 0xff0f) == 0x0800 || /* sd */
-	(statbuf.st_rdev & 0xff3f) == 0x0d00 || /* xd */
-	(statbuf.st_rdev & 0xff3f) == 0x1600 )  /* hdc, hdd */
+	(statbuf.st_rdev & 0xfff3f) == 0x00300 || 
+        (major(statbuf.st_rdev) == 3  && (minor(statbuf.st_rdev) % 64) == 0) || /* hda, hdb */
+	(major(statbuf.st_rdev) == 8  && (minor(statbuf.st_rdev) % 16) == 0) || /* sd */
+	(major(statbuf.st_rdev) == 13 && (minor(statbuf.st_rdev) % 64) == 0) || /* xd */
+	(major(statbuf.st_rdev) == 22 && (minor(statbuf.st_rdev) % 64) == 0))   /* hdc, hdd */
 	)
       die ("Device partition expected, not making filesystem on entire device '%s' (use -I to override)");
 
openSUSE Build Service is sponsored by