[3498] in linux-scsi channel archive
devfs patch for md.c
daemon@ATHENA.MIT.EDU (Mr LEROY christophe)
Mon Mar 9 08:10:59 1998
From: Mr LEROY christophe <leroy@meg.fr>
Date: Mon 09 Mar 13:54:14 1998 (MET)
To: rgooch@atnf.csiro.au
Cc: linux-scsi@vger.rutgers.edu, zyngier@ufr-info-p7.ibp.fr
Actually, /dev/md/* are created in do_md_add() funtion.
The problem is that /dev/md/* has to exist in order to run command
mdadd /dev/md/0 /dev/some_disk /dev/another_disk
Here is a patch on drivers/block/md.c to create /dev/md/* during md
initialisation instead of inside do_md_add()
christophe leroy
diff -u md.c.org md.c
--- md.c.org Sun Mar 8 11:51:52 1998
+++ md.c Sun Mar 8 11:53:53 1998
@@ -556,12 +556,6 @@
int i;
int hot_add=0;
struct real_dev *realdev;
-#ifdef CONFIG_DEVFS_FS
- char name[16];
-# ifndef CONFIG_DEVFS_DISABLE_OLD_NAMES
- char symlink[16];
-# endif
-#endif
if (md_dev[minor].nb_dev==MAX_REAL)
return -EINVAL;
@@ -628,17 +622,6 @@
}
} else
md_dev[minor].nb_dev++;
-#ifdef CONFIG_DEVFS_FS
- sprintf (name, "md/%d", minor);
- devfs_register (name, 0, DEVFS_FL_TOLERANT,
- MAJOR_NR, minor,
- S_IFBLK | S_IRUSR | S_IWUSR | S_IRGRP, 0, 0,
- &md_fops, NULL);
-# ifndef CONFIG_DEVFS_DISABLE_OLD_NAMES
- sprintf (symlink, "md%d", minor);
- devfs_mk_symlink (NULL, symlink, 0, DEVFS_FL_TOLERANT, name, 0, NULL);
-# endif
-#endif
printk ("REGISTER_DEV %s to md%x done\n", partition_name(dev), minor);
return (0);
}
@@ -1305,6 +1288,12 @@
__initfunc(int md_init (void))
{
int i;
+#ifdef CONFIG_DEVFS_FS
+ char name[16];
+# ifndef CONFIG_DEVFS_DISABLE_OLD_NAMES
+ char symlink[16];
+# endif
+#endif
printk ("md driver %d.%d.%d MAX_MD_DEV=%d, MAX_REAL=%d\n",
MD_MAJOR_VERSION, MD_MINOR_VERSION, MD_PATCHLEVEL_VERSION,
@@ -1328,6 +1317,20 @@
md_threads[i].flags = 0;
kernel_thread (md_thread, md_threads + i, 0);
}
+
+#ifdef CONFIG_DEVFS_FS
+ for (i = 0; i< MAX_MD_DEV;i++) {
+ sprintf (name, "md/%d", i);
+ devfs_register (name, 0, DEVFS_FL_TOLERANT,
+ MAJOR_NR, i,
+ S_IFBLK | S_IRUSR | S_IWUSR | S_IRGRP, 0, 0,
+ &md_fops, NULL);
+# ifndef CONFIG_DEVFS_DISABLE_OLD_NAMES
+ sprintf (symlink, "md%d", i);
+ devfs_mk_symlink (NULL, symlink, 0, DEVFS_FL_TOLERANT, name, 0, NULL);
+# endif
+ }
+#endif
blk_dev[MD_MAJOR].request_fn=DEVICE_REQUEST;
blk_dev[MD_MAJOR].current_request=NULL;
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.rutgers.edu