aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/base/Kconfig7
-rw-r--r--drivers/base/devtmpfs.c5
-rw-r--r--fs/ramfs/inode.c2
-rw-r--r--include/linux/ramfs.h2
4 files changed, 13 insertions, 3 deletions
diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig
index fd52c48ee762..ef38aff737eb 100644
--- a/drivers/base/Kconfig
+++ b/drivers/base/Kconfig
@@ -18,9 +18,9 @@ config UEVENT_HELPER_PATH
18 18
19config DEVTMPFS 19config DEVTMPFS
20 bool "Maintain a devtmpfs filesystem to mount at /dev" 20 bool "Maintain a devtmpfs filesystem to mount at /dev"
21 depends on HOTPLUG && SHMEM && TMPFS 21 depends on HOTPLUG
22 help 22 help
23 This creates a tmpfs filesystem instance early at bootup. 23 This creates a tmpfs/ramfs filesystem instance early at bootup.
24 In this filesystem, the kernel driver core maintains device 24 In this filesystem, the kernel driver core maintains device
25 nodes with their default names and permissions for all 25 nodes with their default names and permissions for all
26 registered devices with an assigned major/minor number. 26 registered devices with an assigned major/minor number.
@@ -33,6 +33,9 @@ config DEVTMPFS
33 functional /dev without any further help. It also allows simple 33 functional /dev without any further help. It also allows simple
34 rescue systems, and reliably handles dynamic major/minor numbers. 34 rescue systems, and reliably handles dynamic major/minor numbers.
35 35
36 Notice: if CONFIG_TMPFS isn't enabled, the simpler ramfs
37 file system will be used instead.
38
36config DEVTMPFS_MOUNT 39config DEVTMPFS_MOUNT
37 bool "Automount devtmpfs at /dev, after the kernel mounted the rootfs" 40 bool "Automount devtmpfs at /dev, after the kernel mounted the rootfs"
38 depends on DEVTMPFS 41 depends on DEVTMPFS
diff --git a/drivers/base/devtmpfs.c b/drivers/base/devtmpfs.c
index 057cf11326bf..af0600143d1c 100644
--- a/drivers/base/devtmpfs.c
+++ b/drivers/base/devtmpfs.c
@@ -20,6 +20,7 @@
20#include <linux/namei.h> 20#include <linux/namei.h>
21#include <linux/fs.h> 21#include <linux/fs.h>
22#include <linux/shmem_fs.h> 22#include <linux/shmem_fs.h>
23#include <linux/ramfs.h>
23#include <linux/cred.h> 24#include <linux/cred.h>
24#include <linux/sched.h> 25#include <linux/sched.h>
25#include <linux/init_task.h> 26#include <linux/init_task.h>
@@ -45,7 +46,11 @@ __setup("devtmpfs.mount=", mount_param);
45static int dev_get_sb(struct file_system_type *fs_type, int flags, 46static int dev_get_sb(struct file_system_type *fs_type, int flags,
46 const char *dev_name, void *data, struct vfsmount *mnt) 47 const char *dev_name, void *data, struct vfsmount *mnt)
47{ 48{
49#ifdef CONFIG_TMPFS
48 return get_sb_single(fs_type, flags, data, shmem_fill_super, mnt); 50 return get_sb_single(fs_type, flags, data, shmem_fill_super, mnt);
51#else
52 return get_sb_single(fs_type, flags, data, ramfs_fill_super, mnt);
53#endif
49} 54}
50 55
51static struct file_system_type dev_fs_type = { 56static struct file_system_type dev_fs_type = {
diff --git a/fs/ramfs/inode.c b/fs/ramfs/inode.c
index c94853473ca9..f47cd212dee1 100644
--- 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)
214 return 0; 214 return 0;
215} 215}
216 216
217static int ramfs_fill_super(struct super_block * sb, void * data, int silent) 217int ramfs_fill_super(struct super_block *sb, void *data, int silent)
218{ 218{
219 struct ramfs_fs_info *fsi; 219 struct ramfs_fs_info *fsi;
220 struct inode *inode = NULL; 220 struct inode *inode = NULL;
diff --git a/include/linux/ramfs.h b/include/linux/ramfs.h
index 4e768dda87b0..8600508c77a6 100644
--- a/include/linux/ramfs.h
+++ b/include/linux/ramfs.h
@@ -20,4 +20,6 @@ extern const struct file_operations ramfs_file_operations;
20extern const struct vm_operations_struct generic_file_vm_ops; 20extern const struct vm_operations_struct generic_file_vm_ops;
21extern int __init init_rootfs(void); 21extern int __init init_rootfs(void);
22 22
23int ramfs_fill_super(struct super_block *sb, void *data, int silent);
24
23#endif 25#endif