On 04/03/2013 07:30:08 AM, Rob Landley wrote:
Attached is my quick and dirty hack to make rootfs be tmpfs when CONFIG_TMPFS is
enabled.

For a somewhat quantum definition of "attached".

Rob
diff --git a/fs/ramfs/inode.c b/fs/ramfs/inode.c
index c24f1e1..f875bf2 100644
--- a/fs/ramfs/inode.c
+++ b/fs/ramfs/inode.c
@@ -244,10 +244,17 @@ struct dentry *ramfs_mount(struct file_system_type *fs_type,
 	return mount_nodev(fs_type, flags, data, ramfs_fill_super);
 }
 
-static struct dentry *rootfs_mount(struct file_system_type *fs_type,
+int shmem_init(void);
+int shmem_fill_super(struct super_block *sb, void *data, int silent);
+static __init struct dentry *rootfs_mount(struct file_system_type *fs_type,
 	int flags, const char *dev_name, void *data)
 {
+#ifdef CONFIG_TMPFS
+	if (shmem_init()) return NULL;
+	return mount_nodev(fs_type, flags, data, shmem_fill_super);
+#else
 	return mount_nodev(fs_type, flags|MS_NOUSER, data, ramfs_fill_super);
+#endif
 }
 
 static void ramfs_kill_sb(struct super_block *sb)
diff --git a/mm/shmem.c b/mm/shmem.c
index 1c44af7..d2cb93e 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -2785,6 +2785,8 @@ int __init shmem_init(void)
 {
 	int error;
 
+	if (shmem_inode_cachep) return 0;
+
 	error = bdi_init(&shmem_backing_dev_info);
 	if (error)
 		goto out4;

Reply via email to