]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] fix sysfs oops
authorAndrew Morton <akpm@osdl.org>
Tue, 6 Jan 2004 23:52:21 +0000 (15:52 -0800)
committerLinus Torvalds <torvalds@home.osdl.org>
Tue, 6 Jan 2004 23:52:21 +0000 (15:52 -0800)
From: Greg KH <greg@kroah.com>

This fixes an oops when a kobject is unregistered before it's child is.
The usb-serial devices show this bug very easily (yank out a device
while its port is opened...)

Patch was originally written by Mike Gorse <mgorse@mgorse.dhs.org>

fs/sysfs/dir.c

index 3cea188ba58b51b1adffafa68f02f0740b1e0f28..ebaf6c40671af75962c4c946f5ff8898f9ee3cd3 100644 (file)
@@ -83,7 +83,8 @@ static void remove_dir(struct dentry * d)
        struct dentry * parent = dget(d->d_parent);
        down(&parent->d_inode->i_sem);
        d_delete(d);
-       simple_rmdir(parent->d_inode,d);
+       if (d->d_inode)
+               simple_rmdir(parent->d_inode,d);
 
        pr_debug(" o %s removing done (%d)\n",d->d_name.name,
                 atomic_read(&d->d_count));