fs/partitions/check.c: add_partition() warning fixes (take 3)
PATCH 1/1 fs/partitions/check.c: add_partition() warning fixes (take 3)
This patch fixes these warnings:
fs/partitions/check.c: In function 'add_partition':fs/partitions/check.c:391: warning: ignoring return value of 'kobject_add',
declared with attribute warn_unused_resultfs/partitions/check.c:394: warning: ignoring return value of
'sysfs_create_link', declared with attribute warn_unused_resultfs/partitions/check.c:401: warning: ignoring return value of
'sysfs_create_file', declared with attribute warn_unused_result
Signed-off-by Eugene Teo <[email protected]>
--- fs/partitions/check.c | 22 +++++++++++++++++++--- 1 files changed, 19 insertions(+), 3 deletions(-)
fs/partitions/check.c +19 -3
@@ -371,6 +371,7 @@ void delete_partition(struct gendisk *disk, int part)void add_partition (struct gendisk *disk,int part,sector_t start,sector_t len,int flags) {struct hd_struct *p; +int err; p =kzalloc (sizeof (*p),GFP_KERNEL );if (!p)
@@ -388,20 +389,35 @@ void add_partition(struct gendisk *disk, int part, sector_t start, sector_t len, p->kobj.parent = &disk->kobj; p->kobj.ktype = &ktype_part;kobject_init (&p->kobj); -kobject_add (&p->kobj); + err =kobject_add (&p->kobj); +if (err) + goto err_out;if (!disk->part_uevent_suppress)kobject_uevent (&p->kobj,KOBJ_ADD ); -sysfs_create_link (&p->kobj, &block_subsys.kobj,"subsystem" ); + err =sysfs_create_link (&p->kobj, &block_subsys.kobj,"subsystem" ); +if (err) + goto err_out_del_uevent;if (flags &ADDPART_FLAG_WHOLEDISK ) {static struct attribute addpartattr = { .name ="whole_disk" , .mode =S_IRUSR |S_IRGRP |S_IROTH , }; -sysfs_create_file (&p->kobj, &addpartattr); + err =sysfs_create_file (&p->kobj, &addpartattr); +if (err) + goto err_out_del_link; }partition_sysfs_add_subdir (p); disk->part[part-1 ] = p; +return ; + +err_out_del_link: +sysfs_remove_link (&p->kobj,"subsystem" ); +err_out_del_uevent: +if (!disk->part_uevent_suppress) +kobject_uevent (&p->kobj,KOBJ_REMOVE ); +err_out: +kobject_put (&p->kobj); }static char *make_block_name (struct gendisk *disk)
fs/partitions/check.c void add_partition(struct gendisk *disk, int part, sector_t start, sector_t len, · line 418
Quoted 5 lines · Eugene Teo
fs/partitions/check.c +5
-0+err_out_del_link: +sysfs_remove_link (&p->kobj,"subsystem" ); +err_out_del_uevent: +if (!disk->part_uevent_suppress) +kobject_uevent (&p->kobj,KOBJ_REMOVE );
You're missing kobject_del() here...
Quoted 6 lines
fs/partitions/check.c +2
-0+err_out: +kobject_put (&p->kobj); }static char *make_block_name (struct gendisk *disk)