[PATCH] sysfs and driver core: add callback helper, used by SCSI and S390

This patch (as868) adds a helper routine for device drivers that need
to set up a callback to perform some action in a different process's
context.  This is intended for use by attribute methods that want to
unregister themselves or their parent device.  Attribute method calls
are mutually exclusive with unregistration, so such actions cannot be
taken directly.

Two attribute methods are converted to use the new helper routine: one
for SCSI device deletion and one for System/390 ccwgroup devices.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Cc: Hugh Dickins <hugh@veritas.com>
Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
Cc: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Alan Stern 2007-03-15 15:50:34 -04:00 committed by Linus Torvalds
parent 6ab27c6bf3
commit d9a9cdfb07
6 changed files with 122 additions and 4 deletions

View file

@ -78,6 +78,9 @@ struct sysfs_ops {
#ifdef CONFIG_SYSFS
extern int sysfs_schedule_callback(struct kobject *kobj,
void (*func)(void *), void *data);
extern int __must_check
sysfs_create_dir(struct kobject *, struct dentry *);
@ -132,6 +135,12 @@ extern int __must_check sysfs_init(void);
#else /* CONFIG_SYSFS */
static inline int sysfs_schedule_callback(struct kobject *kobj,
void (*func)(void *), void *data)
{
return -ENOSYS;
}
static inline int sysfs_create_dir(struct kobject * k, struct dentry *shadow)
{
return 0;