Messages in this thread Patch in this message | | | Date | Wed, 25 Apr 2007 05:15:55 +0900 | From | Tejun Heo <> | Subject | Re: [OOPS 2.6.21-rc7-mm1] kernel BUG at fs/sysfs/inode.c:272 (sysfs_drop_dentry) |
| |
On Tue, Apr 24, 2007 at 10:58:44AM -0700, Andrew Morton wrote: > On Wed, 25 Apr 2007 02:51:43 +0900 Tejun Heo <htejun@gmail.com> wrote: > > > Andrew Morton wrote: > > > On Wed, 25 Apr 2007 01:33:59 +0900 Tejun Heo <htejun@gmail.com> wrote: > > > > > >> Vincent Vanackere wrote: > > >>> Hi, > > >>> > > >>> I'm getting the following oops at boot with the latest -mm kernel : > > >>> --------------------------------------------------------------- > > >>> kernel BUG at fs/sysfs/inode.c:272 > > >> Known problem. Working on it. Thanks. > > >> > > > > > > If it had been known by me I wouldn't have released known-buggy code to > > > people who need to be able to test other people's code too. (argh) > > > > > > > It's the problem Cornelia reported in the thread the patch was posted. > > Is there a workaround? What might happen if we just delete that BUG_ON()?
Okay, here's the workaround. It leaks dentries and inodes if parent is deleted first but other than that it should be okay.
diff --git a/fs/sysfs/inode.c b/fs/sysfs/inode.c index eea50a5..b466671 100644 --- a/fs/sysfs/inode.c +++ b/fs/sysfs/inode.c @@ -212,8 +212,11 @@ static struct dentry *sysfs_lookup_sd(struct sysfs_dirent *sd) depth = sysfs_path_depth(sd); while (depth--) { - /* negative intermediate node is a BUG */ - BUG_ON(!dentry->d_inode); + /* XXX */ /* negative intermediate node is a BUG */ + /* XXX */ /* BUG_ON(!dentry->d_inode); */ + if (!dentry->d_inode) + return NULL; + /* XXX */ for (cur = sd, i = 0; i < depth; i++) cur = cur->s_parent; @@ -269,7 +272,7 @@ void sysfs_drop_dentry(struct sysfs_dirent *sd) } if (isdir) { - BUG_ON(!simple_empty(dentry)); + /* XXX */ /* BUG_ON(!simple_empty(dentry)); */ drop_nlink(dir); /* unpin if directory */ dput(dentry); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |