forked from luck/tmp_suning_uos_patched
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6: sysfs: remove BUG_ON() from sysfs_remove_group() Driver core: Revert "Fix Firmware class name collision" Block: Fix whole_disk attribute bug
This commit is contained in:
commit
bfa271d026
@ -292,7 +292,8 @@ firmware_class_timeout(u_long data)
|
||||
|
||||
static inline void fw_setup_device_id(struct device *f_dev, struct device *dev)
|
||||
{
|
||||
snprintf(f_dev->bus_id, BUS_ID_SIZE, "firmware-%s", dev->bus_id);
|
||||
/* XXX warning we should watch out for name collisions */
|
||||
strlcpy(f_dev->bus_id, dev->bus_id, BUS_ID_SIZE);
|
||||
}
|
||||
|
||||
static int fw_register_device(struct device **dev_p, const char *fw_name,
|
||||
|
@ -319,6 +319,14 @@ void delete_partition(struct gendisk *disk, int part)
|
||||
put_device(&p->dev);
|
||||
}
|
||||
|
||||
static ssize_t whole_disk_show(struct device *dev,
|
||||
struct device_attribute *attr, char *buf)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static DEVICE_ATTR(whole_disk, S_IRUSR | S_IRGRP | S_IROTH,
|
||||
whole_disk_show, NULL);
|
||||
|
||||
void add_partition(struct gendisk *disk, int part, sector_t start, sector_t len, int flags)
|
||||
{
|
||||
struct hd_struct *p;
|
||||
@ -352,13 +360,8 @@ void add_partition(struct gendisk *disk, int part, sector_t start, sector_t len,
|
||||
device_add(&p->dev);
|
||||
partition_sysfs_add_subdir(p);
|
||||
p->dev.uevent_suppress = 0;
|
||||
if (flags & ADDPART_FLAG_WHOLEDISK) {
|
||||
static struct attribute addpartattr = {
|
||||
.name = "whole_disk",
|
||||
.mode = S_IRUSR | S_IRGRP | S_IROTH,
|
||||
};
|
||||
err = sysfs_create_file(&p->dev.kobj, &addpartattr);
|
||||
}
|
||||
if (flags & ADDPART_FLAG_WHOLEDISK)
|
||||
err = device_create_file(&p->dev, &dev_attr_whole_disk);
|
||||
|
||||
/* suppress uevent if the disk supresses it */
|
||||
if (!disk->dev.uevent_suppress)
|
||||
|
@ -77,7 +77,12 @@ void sysfs_remove_group(struct kobject * kobj,
|
||||
|
||||
if (grp->name) {
|
||||
sd = sysfs_get_dirent(dir_sd, grp->name);
|
||||
BUG_ON(!sd);
|
||||
if (!sd) {
|
||||
printk(KERN_WARNING "sysfs group %p not found for "
|
||||
"kobject '%s'\n", grp, kobject_name(kobj));
|
||||
WARN_ON(!sd);
|
||||
return;
|
||||
}
|
||||
} else
|
||||
sd = sysfs_get(dir_sd);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user