From: Li Zefan <lizf@cn.fujitsu.com>
To: viro@ZenIV.linux.org.uk, Nick Piggin <npiggin@gmail.com>
Cc: Paul Menage <menage@google.com>,
LKML <linux-kernel@vger.kernel.org>,
containers@lists.linux-foundation.org,
Andrew Morton <akpm@linux-foundation.org>
Subject: kernel BUG at fs/dcache.c:1363 (from cgroup)
Date: Fri, 14 Jan 2011 12:56:17 +0800 [thread overview]
Message-ID: <4D2FD771.9040301@cn.fujitsu.com> (raw)
Just mount the cgroupfs:
# mount -t cgroup -o cpuset xxx /mnt
(oops!!)
The bug is caused by:
=========
commit 0df6a63f8735a7c8a877878bc215d4312e41ef81
Author: Al Viro <viro@zeniv.linux.org.uk>
Date: Tue Dec 21 13:29:29 2010 -0500
switch cgroup
switching it to s_d_op allows to kill the cgroup_lookup() kludge.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
=========
This line:
+ sb->s_d_op = &cgroup_dops;
will cause the dentry op be set twice, and thus trigger the bomb:
struct dentry *d_alloc(struct dentry * parent, const struct qstr *name)
{
...
if (parent) {
...
d_set_d_op(dentry, dentry->d_sb->s_d_op);
...
}
...
}
static struct dentry *d_alloc_and_lookup(struct dentry *parent,
struct qstr *name, struct nameidata *nd)
{
...
dentry = d_alloc(parent, name);
...
old = inode->i_op->lookup(inode, dentry, nd);
...
}
simple_lookup() will call d_set_d_op()...
==============
[ 90.740906] kernel BUG at fs/dcache.c:1360!
..
[ 90.810321] Call Trace:
[ 90.814166] [<c04f97ad>] simple_lookup+0x26/0x3c
[ 90.818015] [<c04e86ce>] d_alloc_and_lookup+0x36/0x54
[ 90.818021] [<c04e8aa8>] __lookup_hash+0x6a/0x71
[ 90.818026] [<c04e8f33>] lookup_one_len+0x81/0x90
[ 90.818034] [<c0473083>] cgroup_add_file+0x8e/0x132
[ 90.818041] [<c0473152>] cgroup_add_files+0x2b/0x3d
[ 90.818047] [<c0473188>] cgroup_populate_dir+0x24/0xdb
[ 90.818053] [<c047360b>] cgroup_mount+0x3cc/0x431
[ 90.818061] [<c04e238d>] vfs_kern_mount+0x57/0x109
[ 90.818066] [<c047323f>] ? cgroup_mount+0x0/0x431
[ 90.818072] [<c04e248e>] do_kern_mount+0x38/0xba
[ 90.818077] [<c04f6706>] do_mount+0x5e4/0x60f
[ 90.818082] [<c04f6094>] ? copy_mount_options+0x78/0xd7
[ 90.818087] [<c04f68de>] sys_mount+0x66/0x94
[ 90.818093] [<c040329f>] sysenter_do_call+0x12/0x38
next reply other threads:[~2011-01-14 4:57 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-14 4:56 Li Zefan [this message]
2011-01-14 5:14 ` kernel BUG at fs/dcache.c:1363 (from cgroup) Al Viro
2011-01-14 5:29 ` Li Zefan
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=4D2FD771.9040301@cn.fujitsu.com \
--to=lizf@cn.fujitsu.com \
--cc=akpm@linux-foundation.org \
--cc=containers@lists.linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=menage@google.com \
--cc=npiggin@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox