Driver core: device_add_attrs() cleanup

Clean up the coding in device_add_attrs() a bit.

Cc: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Andrew Morton 2007-02-13 22:39:26 -08:00 committed by Greg Kroah-Hartman
parent 873760fbf4
commit 4aca67e5f5

View file

@ -324,27 +324,25 @@ int bus_for_each_drv(struct bus_type * bus, struct device_driver * start,
return error; return error;
} }
static int device_add_attrs(struct bus_type * bus, struct device * dev) static int device_add_attrs(struct bus_type *bus, struct device *dev)
{ {
int error = 0; int error = 0;
int i; int i;
if (bus->dev_attrs) { if (!bus->dev_attrs)
for (i = 0; attr_name(bus->dev_attrs[i]); i++) { return 0;
error = device_create_file(dev,&bus->dev_attrs[i]);
if (error) for (i = 0; attr_name(bus->dev_attrs[i]); i++) {
goto Err; error = device_create_file(dev,&bus->dev_attrs[i]);
if (error) {
while (--i >= 0)
device_remove_file(dev, &bus->dev_attrs[i]);
break;
} }
} }
Done:
return error; return error;
Err:
while (--i >= 0)
device_remove_file(dev,&bus->dev_attrs[i]);
goto Done;
} }
static void device_remove_attrs(struct bus_type * bus, struct device * dev) static void device_remove_attrs(struct bus_type * bus, struct device * dev)
{ {
int i; int i;