aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2007-09-12 18:06:57 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2007-10-12 17:51:02 -0400
commit19c38de88a80913351fcacefdb461cc0b585fa87 (patch)
tree17d2978ce27861926a0d9a3eb49471b9b736f968 /fs
parent5901d0145c6b9e791bacd049eea11c9db9a3006e (diff)
kobjects: fix up improper use of the kobject name field
A number of different drivers incorrect access the kobject name field directly. This is not correct as the name might not be in the array. Use the proper accessor function instead.
Diffstat (limited to 'fs')
-rw-r--r--fs/partitions/check.c12
-rw-r--r--fs/sysfs/dir.c2
2 files changed, 8 insertions, 6 deletions
diff --git a/fs/partitions/check.c b/fs/partitions/check.c
index 783c57ec07d3..722e12e5acc7 100644
--- a/fs/partitions/check.c
+++ b/fs/partitions/check.c
@@ -381,10 +381,12 @@ void add_partition(struct gendisk *disk, int part, sector_t start, sector_t len,
381 p->partno = part; 381 p->partno = part;
382 p->policy = disk->policy; 382 p->policy = disk->policy;
383 383
384 if (isdigit(disk->kobj.name[strlen(disk->kobj.name)-1])) 384 if (isdigit(disk->kobj.k_name[strlen(disk->kobj.k_name)-1]))
385 snprintf(p->kobj.name,KOBJ_NAME_LEN,"%sp%d",disk->kobj.name,part); 385 kobject_set_name(&p->kobj, "%sp%d",
386 kobject_name(&disk->kobj), part);
386 else 387 else
387 snprintf(p->kobj.name,KOBJ_NAME_LEN,"%s%d",disk->kobj.name,part); 388 kobject_set_name(&p->kobj, "%s%d",
389 kobject_name(&disk->kobj),part);
388 p->kobj.parent = &disk->kobj; 390 p->kobj.parent = &disk->kobj;
389 p->kobj.ktype = &ktype_part; 391 p->kobj.ktype = &ktype_part;
390 kobject_init(&p->kobj); 392 kobject_init(&p->kobj);
@@ -477,9 +479,9 @@ void register_disk(struct gendisk *disk)
477 struct hd_struct *p; 479 struct hd_struct *p;
478 int err; 480 int err;
479 481
480 strlcpy(disk->kobj.name,disk->disk_name,KOBJ_NAME_LEN); 482 kobject_set_name(&disk->kobj, "%s", disk->disk_name);
481 /* ewww... some of these buggers have / in name... */ 483 /* ewww... some of these buggers have / in name... */
482 s = strchr(disk->kobj.name, '/'); 484 s = strchr(disk->kobj.k_name, '/');
483 if (s) 485 if (s)
484 *s = '!'; 486 *s = '!';
485 if ((err = kobject_add(&disk->kobj))) 487 if ((err = kobject_add(&disk->kobj)))
diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
index 83e76b3813c9..ea33b660ae8a 100644
--- a/fs/sysfs/dir.c
+++ b/fs/sysfs/dir.c
@@ -1013,7 +1013,7 @@ again:
1013 goto again; 1013 goto again;
1014 } 1014 }
1015 1015
1016 new_dentry = lookup_one_len(kobj->name, new_parent, strlen(kobj->name)); 1016 new_dentry = lookup_one_len(kobject_name(kobj), new_parent, strlen(kobject_name(kobj)));
1017 if (IS_ERR(new_dentry)) { 1017 if (IS_ERR(new_dentry)) {
1018 error = PTR_ERR(new_dentry); 1018 error = PTR_ERR(new_dentry);
1019 goto out_unlock; 1019 goto out_unlock;