On Wed, Mar 15, 2006 at 11:00:47AM -0600, Paul Fulghum wrote: > On Wed, 2006-03-15 at 11:56 -0500, Alan Stern wrote: > > > Should driver core defer sysfs_remove_file until > > > last dev->kobj reference is dropped? > > > > No. The files should be deleted. James Bottomley refers to this as > > "removing from visibility". There's no point leaving the symlink visible > > once it can no longer be used. > > > > Instead, the code should be fixed so that the attempt to remove the > > already-deleted symlink by class_device_del() doesn't cause an oops. > > So dev->kobj->dentry should be set to NULL in > device_remove_file() and other code should be > fixed to check for dev->kobj->dentry == NULL ?
No, the kobject core should do it for us. Here's a patch that should fix this up. Bob, can you try it out? thanks, greg k-h --- fs/sysfs/dir.c | 1 + fs/sysfs/inode.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) --- gregkh-2.6.orig/fs/sysfs/dir.c +++ gregkh-2.6/fs/sysfs/dir.c @@ -333,6 +333,7 @@ void sysfs_remove_dir(struct kobject * k * Drop reference from dget() on entrance. */ dput(dentry); + kobj->dentry = NULL; } int sysfs_rename_dir(struct kobject * kobj, const char *new_name) --- gregkh-2.6.orig/fs/sysfs/inode.c +++ gregkh-2.6/fs/sysfs/inode.c @@ -226,12 +226,16 @@ void sysfs_drop_dentry(struct sysfs_dire void sysfs_hash_and_remove(struct dentry * dir, const char * name) { struct sysfs_dirent * sd; - struct sysfs_dirent * parent_sd = dir->d_fsdata; + struct sysfs_dirent * parent_sd; + + if (!dir) + return; if (dir->d_inode == NULL) /* no inode means this hasn't been made visible yet */ return; + parent_sd = dir->d_fsdata; mutex_lock(&dir->d_inode->i_mutex); list_for_each_entry(sd, &parent_sd->s_children, s_sibling) { if (!sd->s_element) ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel