All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org
Subject: [PATCH] Remove devfs from the init code
Date: Sat, 11 Jun 2005 00:48:30 -0700	[thread overview]
Message-ID: <11184761103552@kroah.com> (raw)
In-Reply-To: <11184761102475@kroah.com>


This patch removes the devfs code from the init/ directory.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
 include/linux/devfs_fs_kernel.h |    4 -
 init/Makefile                   |    1 
 init/do_mounts.c                |    8 --
 init/do_mounts.h                |   15 ----
 init/do_mounts_devfs.c          |  137 ----------------------------------------
 init/do_mounts_initrd.c         |    6 -
 init/do_mounts_md.c             |    5 -
 7 files changed, 7 insertions(+), 169 deletions(-)

--- gregkh-2.6.orig/init/Makefile	2005-06-10 23:29:08.000000000 -0700
+++ gregkh-2.6/init/Makefile	2005-06-10 23:36:41.000000000 -0700
@@ -6,7 +6,6 @@
 obj-$(CONFIG_GENERIC_CALIBRATE_DELAY) += calibrate.o
 
 mounts-y			:= do_mounts.o
-mounts-$(CONFIG_DEVFS_FS)	+= do_mounts_devfs.o
 mounts-$(CONFIG_BLK_DEV_RAM)	+= do_mounts_rd.o
 mounts-$(CONFIG_BLK_DEV_INITRD)	+= do_mounts_initrd.o
 mounts-$(CONFIG_BLK_DEV_MD)	+= do_mounts_md.o
--- gregkh-2.6.orig/init/do_mounts_devfs.c	2005-06-10 23:29:08.000000000 -0700
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,137 +0,0 @@
-
-#include <linux/kernel.h>
-#include <linux/dirent.h>
-#include <linux/string.h>
-
-#include "do_mounts.h"
-
-void __init mount_devfs(void)
-{
-	sys_mount("devfs", "/dev", "devfs", 0, NULL);
-}
-
-void __init umount_devfs(char *path)
-{
-	sys_umount(path, 0);
-}
-
-/*
- * If the dir will fit in *buf, return its length.  If it won't fit, return
- * zero.  Return -ve on error.
- */
-static int __init do_read_dir(int fd, void *buf, int len)
-{
-	long bytes, n;
-	char *p = buf;
-	sys_lseek(fd, 0, 0);
-
-	for (bytes = 0; bytes < len; bytes += n) {
-		n = sys_getdents64(fd, (struct linux_dirent64 *)(p + bytes),
-					len - bytes);
-		if (n < 0)
-			return n;
-		if (n == 0)
-			return bytes;
-	}
-	return 0;
-}
-
-/*
- * Try to read all of a directory.  Returns the contents at *p, which
- * is kmalloced memory.  Returns the number of bytes read at *len.  Returns
- * NULL on error.
- */
-static void * __init read_dir(char *path, int *len)
-{
-	int size;
-	int fd = sys_open(path, 0, 0);
-
-	*len = 0;
-	if (fd < 0)
-		return NULL;
-
-	for (size = 1 << 9; size <= (PAGE_SIZE << MAX_ORDER); size <<= 1) {
-		void *p = kmalloc(size, GFP_KERNEL);
-		int n;
-		if (!p)
-			break;
-		n = do_read_dir(fd, p, size);
-		if (n > 0) {
-			sys_close(fd);
-			*len = n;
-			return p;
-		}
-		kfree(p);
-		if (n == -EINVAL)
-			continue;	/* Try a larger buffer */
-		if (n < 0)
-			break;
-	}
-	sys_close(fd);
-	return NULL;
-}
-
-/*
- * recursively scan <path>, looking for a device node of type <dev>
- */
-static int __init find_in_devfs(char *path, unsigned dev)
-{
-	char *end = path + strlen(path);
-	int rest = path + 64 - end;
-	int size;
-	char *p = read_dir(path, &size);
-	char *s;
-
-	if (!p)
-		return -1;
-	for (s = p; s < p + size; s += ((struct linux_dirent64 *)s)->d_reclen) {
-		struct linux_dirent64 *d = (struct linux_dirent64 *)s;
-		if (strlen(d->d_name) + 2 > rest)
-			continue;
-		switch (d->d_type) {
-			case DT_BLK:
-				sprintf(end, "/%s", d->d_name);
-				if (bstat(path) != dev)
-					break;
-				kfree(p);
-				return 0;
-			case DT_DIR:
-				if (strcmp(d->d_name, ".") == 0)
-					break;
-				if (strcmp(d->d_name, "..") == 0)
-					break;
-				sprintf(end, "/%s", d->d_name);
-				if (find_in_devfs(path, dev) < 0)
-					break;
-				kfree(p);
-				return 0;
-		}
-	}
-	kfree(p);
-	return -1;
-}
-
-/*
- * create a device node called <name> which points to
- * <devfs_name> if possible, otherwise find a device node
- * which matches <dev> and make <name> a symlink pointing to it.
- */
-int __init create_dev(char *name, dev_t dev, char *devfs_name)
-{
-	char path[64];
-
-	sys_unlink(name);
-	if (devfs_name && devfs_name[0]) {
-		if (strncmp(devfs_name, "/dev/", 5) == 0)
-			devfs_name += 5;
-		sprintf(path, "/dev/%s", devfs_name);
-		if (sys_access(path, 0) == 0)
-			return sys_symlink(devfs_name, name);
-	}
-	if (!dev)
-		return -1;
-	strcpy(path, "/dev");
-	if (find_in_devfs(path, new_encode_dev(dev)) < 0)
-		return -1;
-	return sys_symlink(path + 5, name);
-}
--- gregkh-2.6.orig/init/do_mounts.c	2005-06-10 23:29:08.000000000 -0700
+++ gregkh-2.6/init/do_mounts.c	2005-06-10 23:36:41.000000000 -0700
@@ -322,7 +322,7 @@
 {
 	void *data = nfs_root_data();
 
-	create_dev("/dev/root", ROOT_DEV, NULL);
+	create_dev("/dev/root", ROOT_DEV);
 	if (data &&
 	    do_mount_root("/dev/root", "nfs", root_mountflags, data) == 0)
 		return 1;
@@ -383,7 +383,7 @@
 			change_floppy("root floppy");
 	}
 #endif
-	create_dev("/dev/root", ROOT_DEV, root_device_name);
+	create_dev("/dev/root", ROOT_DEV);
 	mount_block_root("/dev/root", root_mountflags);
 }
 
@@ -394,8 +394,6 @@
 {
 	int is_floppy;
 
-	mount_devfs();
-
 	if (root_delay) {
 		printk(KERN_INFO "Waiting %dsec before mounting root device...\n",
 		       root_delay);
@@ -421,10 +419,8 @@
 
 	mount_root();
 out:
-	umount_devfs("/dev");
 	sys_mount(".", "/", NULL, MS_MOVE, NULL);
 	sys_chroot(".");
 	security_sb_post_mountroot();
-	mount_devfs_fs ();
 }
 
--- gregkh-2.6.orig/init/do_mounts.h	2005-06-10 23:29:08.000000000 -0700
+++ gregkh-2.6/init/do_mounts.h	2005-06-10 23:38:12.000000000 -0700
@@ -16,25 +16,12 @@
 extern int root_mountflags;
 extern char *root_device_name;
 
-#ifdef CONFIG_DEVFS_FS
-
-void mount_devfs(void);
-void umount_devfs(char *path);
-int  create_dev(char *name, dev_t dev, char *devfs_name);
-
-#else
-
-static inline void mount_devfs(void) {}
-static inline void umount_devfs(const char *path) {}
-
-static inline int create_dev(char *name, dev_t dev, char *devfs_name)
+static inline int create_dev(char *name, dev_t dev)
 {
 	sys_unlink(name);
 	return sys_mknod(name, S_IFBLK|0600, new_encode_dev(dev));
 }
 
-#endif
-
 #if BITS_PER_LONG == 32
 static inline u32 bstat(char *name)
 {
--- gregkh-2.6.orig/init/do_mounts_initrd.c	2005-06-10 23:29:08.000000000 -0700
+++ gregkh-2.6/init/do_mounts_initrd.c	2005-06-10 23:36:41.000000000 -0700
@@ -44,7 +44,7 @@
 	int i, pid;
 
 	real_root_dev = new_encode_dev(ROOT_DEV);
-	create_dev("/dev/root.old", Root_RAM0, NULL);
+	create_dev("/dev/root.old", Root_RAM0);
 	/* mount initrd on rootfs' /root */
 	mount_block_root("/dev/root.old", root_mountflags & ~MS_RDONLY);
 	sys_mkdir("/old", 0700);
@@ -54,7 +54,6 @@
 	sys_chdir("/root");
 	sys_mount(".", "/", NULL, MS_MOVE, NULL);
 	sys_chroot(".");
-	mount_devfs_fs ();
 
 	pid = kernel_thread(do_linuxrc, "/linuxrc", SIGCHLD);
 	if (pid > 0) {
@@ -70,7 +69,6 @@
 	sys_chroot(".");
 	sys_close(old_fd);
 	sys_close(root_fd);
-	umount_devfs("/old/dev");
 
 	if (new_decode_dev(real_root_dev) == Root_RAM0) {
 		sys_chdir("/old");
@@ -103,7 +101,7 @@
 int __init initrd_load(void)
 {
 	if (mount_initrd) {
-		create_dev("/dev/ram", Root_RAM0, NULL);
+		create_dev("/dev/ram", Root_RAM0);
 		/*
 		 * Load the initrd data into /dev/ram0. Execute it as initrd
 		 * unless /dev/ram0 is supposed to be our actual root device,
--- gregkh-2.6.orig/include/linux/devfs_fs_kernel.h	2005-06-10 23:36:24.000000000 -0700
+++ gregkh-2.6/include/linux/devfs_fs_kernel.h	2005-06-10 23:38:26.000000000 -0700
@@ -33,8 +33,4 @@
 static inline void devfs_unregister_tape(int num)
 {
 }
-static inline void mount_devfs_fs(void)
-{
-	return;
-}
 #endif				/*  _LINUX_DEVFS_FS_KERNEL_H  */
--- gregkh-2.6.orig/init/do_mounts_md.c	2005-06-10 23:29:08.000000000 -0700
+++ gregkh-2.6/init/do_mounts_md.c	2005-06-10 23:36:41.000000000 -0700
@@ -129,19 +129,18 @@
 		int err = 0;
 		char *devname;
 		mdu_disk_info_t dinfo;
-		char name[16], devfs_name[16];
+		char name[16];
 
 		minor = md_setup_args[ent].minor;
 		partitioned = md_setup_args[ent].partitioned;
 		devname = md_setup_args[ent].device_names;
 
 		sprintf(name, "/dev/md%s%d", partitioned?"_d":"", minor);
-		sprintf(devfs_name, "/dev/md/%s%d", partitioned?"d":"", minor);
 		if (partitioned)
 			dev = MKDEV(mdp_major, minor << MdpMinorShift);
 		else
 			dev = MKDEV(MD_MAJOR, minor);
-		create_dev(name, dev, devfs_name);
+		create_dev(name, dev);
 		for (i = 0; i < MD_SB_DISKS && devname != 0; i++) {
 			char *p;
 			char comp_name[64];


  reply	other threads:[~2005-06-11  7:55 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <11184761102127@kroah.com>
2005-06-11  7:48 ` [PATCH] Remove devfs from the partition code Greg KH
2005-06-11  7:48   ` Greg KH [this message]
2005-06-11  7:48     ` [PATCH] Remove devfs_*_tape() functions from the kernel tree Greg KH
2005-06-11  7:48       ` [PATCH] Remove devfs_mk_dir() function " Greg KH
2005-06-11  7:48         ` [PATCH] Remove devfs_mk_symlink() " Greg KH
2005-06-11  7:48           ` [PATCH] Remove devfs_mk_bdev() " Greg KH
2005-06-11  7:48             ` [PATCH] Remove devfs_mk_cdev() " Greg KH
2005-06-11  7:48               ` [PATCH] Remove devfs_remove() " Greg KH
2005-06-11  7:48                 ` [PATCH] Remove the devfs_fs_kernel.h file from the tree Greg KH
2005-06-11  7:48                   ` [PATCH] Remove the miscdevice devfs_name field as it's no longer needed Greg KH
2005-06-11  7:48                     ` [PATCH] Remove the gendisk " Greg KH
2005-06-11  7:48                       ` [PATCH] Remove the uart_driver " Greg KH
2005-06-11  7:48                         ` [PATCH] Remove the videodevice " Greg KH
2005-06-11  7:48                           ` [PATCH] Remove the ide drive " Greg KH
2005-06-11  7:48                             ` [PATCH] Remove the line_driver " Greg KH
2005-06-11  7:48                               ` [PATCH] Remove the scsi_disk " Greg KH
2005-06-11  7:48                                 ` [PATCH] Remove the tty_driver " Greg KH
2005-06-11  7:48                                   ` [PATCH] Remove the mode field from usb_class_driver " Greg KH
2005-06-11  7:48                                     ` [PATCH] Rename TTY_DRIVER_NO_DEVFS to TTY_DRIVER_DYNAMIC_DEV Greg KH
2005-06-11  7:48                                       ` [PATCH] Last little devfs cleanups throughout the kernel tree Greg KH
2005-06-11 19:05               ` [PATCH] Remove devfs_mk_cdev() function from " Adrian Bunk
2005-06-13 18:15                 ` Greg KH
2005-06-12  8:44               ` Armin Schindler
2005-06-12 13:29                 ` Ed Tomlinson
2005-06-12 13:51                   ` Armin Schindler
2005-06-12 15:12                     ` Adrian Bunk
2005-06-12 15:36                     ` Ed Tomlinson
2005-06-12 18:32                       ` Armin Schindler
2005-06-13 18:13                 ` Greg KH
2005-06-14  6:54                   ` Armin Schindler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=11184761103552@kroah.com \
    --to=gregkh@suse.de \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.