From: Rob Landley <rob@landley.net>
To: linux-kernel@vger.kernel.org
Cc: Al Viro <viro@zeniv.linux.org.uk>,
"Eric W. Biederman" <ebiederm@xmission.com>,
Andrew Morton <akpm@linux-foundation.org>
Subject: [PATCH 2/5] initmpfs v2: Move bdi setup from init_rootfs to init_ramfs
Date: Tue, 16 Jul 2013 16:45:22 -0700 (PDT) [thread overview]
Message-ID: <1374018312.366947@landley.net> (raw)
In-Reply-To: <1374018312.366617@landley.net>
From: Rob Landley <rob@landley.net>
Even though ramfs hasn't got a backing device, commit e0bf68ddec4f added one
anyway, and put the initialization in init_rootfs() since that's the first
user, leaving it out of init_ramfs() to avoid duplication.
But initmpfs uses init_tmpfs() instead, so move the init into the filesystem's
init function, add a "once" guard to prevent duplicate initialization, and
call the filesystem init from rootfs init.
This goes part of the way to allowing ramfs to be built as a module.
Signed-off-by: Rob Landley <rob@landley.net>
---
fs/ramfs/inode.c | 23 ++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)
--- initold/fs/ramfs/inode.c 2013-06-28 15:12:03.205879730 -0500
+++ initold2/fs/ramfs/inode.c 2013-06-28 15:12:12.425880115 -0500
@@ -275,21 +275,34 @@
static int __init init_ramfs_fs(void)
{
- return register_filesystem(&ramfs_fs_type);
+ static unsigned long once;
+ int err;
+
+ if (test_and_set_bit(1, &once))
+ return 0;
+
+ err = bdi_init(&ramfs_backing_dev_info);
+ if (err)
+ return err;
+
+ err = register_filesystem(&ramfs_fs_type);
+ if (err)
+ bdi_destroy(&ramfs_backing_dev_info);
+
+ return err;
}
module_init(init_ramfs_fs)
int __init init_rootfs(void)
{
- int err;
+ int err = register_filesystem(&rootfs_fs_type);
- err = bdi_init(&ramfs_backing_dev_info);
if (err)
return err;
- err = register_filesystem(&rootfs_fs_type);
+ err = init_ramfs_fs();
if (err)
- bdi_destroy(&ramfs_backing_dev_info);
+ unregister_filesystem(&rootfs_fs_type);
return err;
}
next prev parent reply other threads:[~2013-07-16 23:45 UTC|newest]
Thread overview: 11+ 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 ` Rob Landley [this message]
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 ` [PATCH 4/5] initmpfs v2: Make rootfs use tmpfs when CONFIG_TMPFS enabled Rob Landley
2013-07-16 23:45 ` 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
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.366947@landley.net \
--to=rob@landley.net \
--cc=akpm@linux-foundation.org \
--cc=ebiederm@xmission.com \
--cc=linux-kernel@vger.kernel.org \
--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.