add __must_check to device management code

We're getting a lot of crashes in the sysfs/kobject/device/bus/class code and
they're very hard to diagnose.

I'm suspecting that in some cases this is because drivers aren't checking
return values and aren't handling errors correctly.  So the code blithely
blunders on and crashes later in very obscure ways.

There's just no reason to ignore errors which can and do occur.  So the patch
sprinkles __must_check all over these APIs.

Causes 1,513 new warnings.  Heh.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Andrew Morton 2006-08-14 22:43:17 -07:00 committed by Greg Kroah-Hartman
parent 35acfdd725
commit 4a7fb6363f
4 changed files with 66 additions and 55 deletions

View file

@ -10,6 +10,7 @@
#ifndef _SYSFS_H_
#define _SYSFS_H_
#include <linux/compiler.h>
#include <asm/atomic.h>
struct kobject;
@ -86,37 +87,39 @@ struct sysfs_dirent {
#ifdef CONFIG_SYSFS
extern int
extern int __must_check
sysfs_create_dir(struct kobject *);
extern void
sysfs_remove_dir(struct kobject *);
extern int
extern int __must_check
sysfs_rename_dir(struct kobject *, const char *new_name);
extern int
extern int __must_check
sysfs_create_file(struct kobject *, const struct attribute *);
extern int
extern int __must_check
sysfs_update_file(struct kobject *, const struct attribute *);
extern int
extern int __must_check
sysfs_chmod_file(struct kobject *kobj, struct attribute *attr, mode_t mode);
extern void
sysfs_remove_file(struct kobject *, const struct attribute *);
extern int
extern int __must_check
sysfs_create_link(struct kobject * kobj, struct kobject * target, const char * name);
extern void
sysfs_remove_link(struct kobject *, const char * name);
int sysfs_create_bin_file(struct kobject * kobj, struct bin_attribute * attr);
int __must_check sysfs_create_bin_file(struct kobject *kobj,
struct bin_attribute *attr);
void sysfs_remove_bin_file(struct kobject *kobj, struct bin_attribute *attr);
int sysfs_create_group(struct kobject *, const struct attribute_group *);
int __must_check sysfs_create_group(struct kobject *,
const struct attribute_group *);
void sysfs_remove_group(struct kobject *, const struct attribute_group *);
void sysfs_notify(struct kobject * k, char *dir, char *attr);