generic/patches-2.6.34: Make devtmpfs available on (embedded) configurations without SHMEM/TMPFS, using ramfs instead. (gone mainline in kernel 2.6.35-r3)
SVN-Revision: 22407
This commit is contained in:
parent
e47a8a001c
commit
1e05fd6eef
1 changed files with 76 additions and 0 deletions
76
target/linux/generic/patches-2.6.34/015-devtmpfs_ramfs.patch
Normal file
76
target/linux/generic/patches-2.6.34/015-devtmpfs_ramfs.patch
Normal file
|
@ -0,0 +1,76 @@
|
|||
From: Peter Korsgaard <jacmet@sunsite.dk>
|
||||
|
||||
Make devtmpfs available on (embedded) configurations without SHMEM/TMPFS,
|
||||
using ramfs instead.
|
||||
|
||||
Saves ~15KB.
|
||||
|
||||
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
|
||||
Acked-by: Kay Sievers <kay.sievers@vrfy.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
--- a/drivers/base/Kconfig
|
||||
+++ b/drivers/base/Kconfig
|
||||
@@ -18,9 +18,9 @@ config UEVENT_HELPER_PATH
|
||||
|
||||
config DEVTMPFS
|
||||
bool "Maintain a devtmpfs filesystem to mount at /dev"
|
||||
- depends on HOTPLUG && SHMEM && TMPFS
|
||||
+ depends on HOTPLUG
|
||||
help
|
||||
- This creates a tmpfs filesystem instance early at bootup.
|
||||
+ This creates a tmpfs/ramfs filesystem instance early at bootup.
|
||||
In this filesystem, the kernel driver core maintains device
|
||||
nodes with their default names and permissions for all
|
||||
registered devices with an assigned major/minor number.
|
||||
@@ -33,6 +33,9 @@ config DEVTMPFS
|
||||
functional /dev without any further help. It also allows simple
|
||||
rescue systems, and reliably handles dynamic major/minor numbers.
|
||||
|
||||
+ Notice: if CONFIG_TMPFS isn't enabled, the simpler ramfs
|
||||
+ file system will be used instead.
|
||||
+
|
||||
config DEVTMPFS_MOUNT
|
||||
bool "Automount devtmpfs at /dev, after the kernel mounted the rootfs"
|
||||
depends on DEVTMPFS
|
||||
--- a/drivers/base/devtmpfs.c
|
||||
+++ b/drivers/base/devtmpfs.c
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <linux/namei.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/shmem_fs.h>
|
||||
+#include <linux/ramfs.h>
|
||||
#include <linux/cred.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/init_task.h>
|
||||
@@ -45,7 +46,11 @@ __setup("devtmpfs.mount=", mount_param);
|
||||
static int dev_get_sb(struct file_system_type *fs_type, int flags,
|
||||
const char *dev_name, void *data, struct vfsmount *mnt)
|
||||
{
|
||||
+#ifdef CONFIG_TMPFS
|
||||
return get_sb_single(fs_type, flags, data, shmem_fill_super, mnt);
|
||||
+#else
|
||||
+ return get_sb_single(fs_type, flags, data, ramfs_fill_super, mnt);
|
||||
+#endif
|
||||
}
|
||||
|
||||
static struct file_system_type dev_fs_type = {
|
||||
--- a/fs/ramfs/inode.c
|
||||
+++ b/fs/ramfs/inode.c
|
||||
@@ -214,7 +214,7 @@ static int ramfs_parse_options(char *data, struct ramfs_mount_opts *opts)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static int ramfs_fill_super(struct super_block * sb, void * data, int silent)
|
||||
+int ramfs_fill_super(struct super_block *sb, void *data, int silent)
|
||||
{
|
||||
struct ramfs_fs_info *fsi;
|
||||
struct inode *inode = NULL;
|
||||
--- a/include/linux/ramfs.h
|
||||
+++ b/include/linux/ramfs.h
|
||||
@@ -20,4 +20,6 @@ extern const struct file_operations ramfs_file_operations;
|
||||
extern const struct vm_operations_struct generic_file_vm_ops;
|
||||
extern int __init init_rootfs(void);
|
||||
|
||||
+int ramfs_fill_super(struct super_block *sb, void *data, int silent);
|
||||
+
|
||||
#endif
|
Loading…
Reference in a new issue