diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2006-03-16 18:44:26 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-03-20 16:42:57 -0500 |
commit | 641e6f30a095f3752ed84fd9d279382f5d3ef4c1 (patch) | |
tree | 59b57c14f9249488ded6814de4512f7f9949289f /fs/sysfs/dir.c | |
parent | c4a1745aa09fc110afdefea0e5d025043e348bae (diff) |
[PATCH] sysfs: sysfs_remove_dir() needs to invalidate the dentry
When calling sysfs_remove_dir() don't allow any further sysfs functions
to work for this kobject anymore. This fixes a nasty USB cdc-acm oops
on disconnect.
Many thanks to Bob Copeland and Paul Fulghum for taking the time to
track this down.
Cc: Bob Copeland <email@bobcopeland.com>
Cc: Paul Fulghum <paulkf@microgate.com>
Cc: Maneesh Soni <maneesh@in.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'fs/sysfs/dir.c')
-rw-r--r-- | fs/sysfs/dir.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c index 49bd219275db..cfd290d3d6b1 100644 --- a/fs/sysfs/dir.c +++ b/fs/sysfs/dir.c | |||
@@ -302,6 +302,7 @@ void sysfs_remove_dir(struct kobject * kobj) | |||
302 | * Drop reference from dget() on entrance. | 302 | * Drop reference from dget() on entrance. |
303 | */ | 303 | */ |
304 | dput(dentry); | 304 | dput(dentry); |
305 | kobj->dentry = NULL; | ||
305 | } | 306 | } |
306 | 307 | ||
307 | int sysfs_rename_dir(struct kobject * kobj, const char *new_name) | 308 | int sysfs_rename_dir(struct kobject * kobj, const char *new_name) |