From: Rob Landley <rob@landley.net>
To: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org, Al Viro <viro@zeniv.linux.org.uk>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Jens Axboe <axboe@kernel.dk>, Stephen Warren <swarren@nvidia.com>,
Andrew Morton <akpm@linux-foundation.org>,
Hugh Dickins <hughd@google.com>
Subject: [PATCH 4/5] initmpfs v2: Make rootfs use tmpfs when CONFIG_TMPFS enabled.
Date: Tue, 16 Jul 2013 16:45:31 -0700 (PDT) [thread overview]
Message-ID: <1374018312.367470@landley.net> (raw)
In-Reply-To: <1374018312.366617@landley.net>
From: Rob Landley <rob@landley.net>
Conditionally call the appropriate fs_init function and fill_super functions.
Add a use once guard to shmem_init() to simply succeed on a second call.
(Note that IS_ENABLED() is a compile time constant so dead code elimination
removes unused function calls when CONFIG_TMPFS is disabled.)
Signed-off-by: Rob Landley <rob@landley.net>
---
init/do_mounts.c | 10 ++++++++--
mm/shmem.c | 4 ++++
2 files changed, 12 insertions(+), 2 deletions(-)
--- initold/init/do_mounts.c 2013-06-27 00:02:26.283442977 -0500
+++ initwork/init/do_mounts.c 2013-06-27 00:45:21.599550312 -0500
@@ -27,6 +27,7 @@
#include <linux/fs_struct.h>
#include <linux/slab.h>
#include <linux/ramfs.h>
+#include <linux/shmem_fs.h>
#include <linux/nfs_fs.h>
#include <linux/nfs_fs_sb.h>
@@ -598,7 +597,8 @@
if (test_and_set_bit(1, &once))
return ERR_PTR(-ENODEV);
- return mount_nodev(fs_type, flags, data, ramfs_fill_super);
+ return mount_nodev(fs_type, flags, data,
+ IS_ENABLED(CONFIG_TMPFS) ? shmem_fill_super : ramfs_fill_super);
}
static struct file_system_type rootfs_fs_type = {
@@ -614,7 +614,11 @@
if (err)
return err;
- err = init_ramfs_fs();
+ if (IS_ENABLED(CONFIG_TMPFS))
+ err = shmem_init();
+ else
+ err = init_ramfs_fs();
+
if (err)
unregister_filesystem(&rootfs_fs_type);
--- initold/mm/shmem.c 2013-06-25 13:09:22.215743137 -0500
+++ initwork/mm/shmem.c 2013-06-27 00:16:58.195479317 -0500
@@ -2816,6 +2816,10 @@
{
int error;
+ /* If rootfs called this, don't re-init */
+ if (shmem_inode_cachep)
+ return 0;
+
error = bdi_init(&shmem_backing_dev_info);
if (error)
goto out4;
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Rob Landley <rob@landley.net>
To: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org, Al Viro <viro@zeniv.linux.org.uk>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Jens Axboe <axboe@kernel.dk>, Stephen Warren <swarren@nvidia.com>,
Andrew Morton <akpm@linux-foundation.org>,
Hugh Dickins <hughd@google.com>
Subject: [PATCH 4/5] initmpfs v2: Make rootfs use tmpfs when CONFIG_TMPFS enabled.
Date: Tue, 16 Jul 2013 16:45:31 -0700 (PDT) [thread overview]
Message-ID: <1374018312.367470@landley.net> (raw)
In-Reply-To: <1374018312.366617@landley.net>
From: Rob Landley <rob@landley.net>
Conditionally call the appropriate fs_init function and fill_super functions.
Add a use once guard to shmem_init() to simply succeed on a second call.
(Note that IS_ENABLED() is a compile time constant so dead code elimination
removes unused function calls when CONFIG_TMPFS is disabled.)
Signed-off-by: Rob Landley <rob@landley.net>
---
init/do_mounts.c | 10 ++++++++--
mm/shmem.c | 4 ++++
2 files changed, 12 insertions(+), 2 deletions(-)
--- initold/init/do_mounts.c 2013-06-27 00:02:26.283442977 -0500
+++ initwork/init/do_mounts.c 2013-06-27 00:45:21.599550312 -0500
@@ -27,6 +27,7 @@
#include <linux/fs_struct.h>
#include <linux/slab.h>
#include <linux/ramfs.h>
+#include <linux/shmem_fs.h>
#include <linux/nfs_fs.h>
#include <linux/nfs_fs_sb.h>
@@ -598,7 +597,8 @@
if (test_and_set_bit(1, &once))
return ERR_PTR(-ENODEV);
- return mount_nodev(fs_type, flags, data, ramfs_fill_super);
+ return mount_nodev(fs_type, flags, data,
+ IS_ENABLED(CONFIG_TMPFS) ? shmem_fill_super : ramfs_fill_super);
}
static struct file_system_type rootfs_fs_type = {
@@ -614,7 +614,11 @@
if (err)
return err;
- err = init_ramfs_fs();
+ if (IS_ENABLED(CONFIG_TMPFS))
+ err = shmem_init();
+ else
+ err = init_ramfs_fs();
+
if (err)
unregister_filesystem(&rootfs_fs_type);
--- initold/mm/shmem.c 2013-06-25 13:09:22.215743137 -0500
+++ initwork/mm/shmem.c 2013-06-27 00:16:58.195479317 -0500
@@ -2816,6 +2816,10 @@
{
int error;
+ /* If rootfs called this, don't re-init */
+ if (shmem_inode_cachep)
+ return 0;
+
error = bdi_init(&shmem_backing_dev_info);
if (error)
goto out4;
next prev parent reply other threads:[~2013-07-16 23:45 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-16 23:45 [PATCH 0/5] initmpfs v2: use tmpfs instead of ramfs for rootfs Rob Landley
2013-07-16 23:45 ` Rob Landley
2013-07-16 23:45 ` Rob Landley
2013-07-16 23:45 ` [PATCH 1/5] initmpfs v2: replace MS_NOUSER in initramfs Rob Landley
2013-07-16 23:45 ` [PATCH 2/5] initmpfs v2: Move bdi setup from init_rootfs to init_ramfs Rob Landley
2013-07-16 23:45 ` [PATCH 3/5] initmpfs v2: Move rootfs code from fs/ramfs/ to init/ Rob Landley
2013-07-16 23:45 ` Rob Landley [this message]
2013-07-16 23:45 ` [PATCH 4/5] initmpfs v2: Make rootfs use tmpfs when CONFIG_TMPFS enabled Rob Landley
2013-07-16 23:45 ` [PATCH 5/5] initmpfs v2: Use initramfs if rootfstype= or root= specified Rob Landley
2013-07-19 19:57 ` Andrew Morton
2013-07-26 4:12 ` Rob Landley
-- strict thread matches above, loose matches on Subject: below --
2013-07-16 15:31 [PATCH 0/5] initmpfs v2: use tmpfs instead of ramfs for rootfs Rob Landley
2013-07-16 15:31 ` [PATCH 4/5] initmpfs v2: Make rootfs use tmpfs when CONFIG_TMPFS enabled Rob Landley
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=1374018312.367470@landley.net \
--to=rob@landley.net \
--cc=akpm@linux-foundation.org \
--cc=axboe@kernel.dk \
--cc=gregkh@linuxfoundation.org \
--cc=hughd@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=swarren@nvidia.com \
--cc=viro@zeniv.linux.org.uk \
/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.