aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base/attribute_container.c
diff options
context:
space:
mode:
authorJames Bottomley <James.Bottomley@HansenPartnership.com>2008-01-02 19:48:47 -0500
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-01-23 12:29:17 -0500
commitfd1109711d7f76126e7cef947999f139b198dc15 (patch)
treee108e3b02fa50e2bcb8456bbc5a4a0c90391c9e1 /drivers/base/attribute_container.c
parent11f24fbdf511cf588c3a18e3208ee02d85db0020 (diff)
[SCSI] attribute_container: update to use the group interface
This patch is the beginning of moving the attribute_containers to use attribute groups exclusively. The attr element is now deprecated and will eventually be removed (along with all the hand rolled code for doing exactly what attribute groups do) when all the consumers are converted to attribute groups. Acked-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/base/attribute_container.c')
-rw-r--r--drivers/base/attribute_container.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/base/attribute_container.c b/drivers/base/attribute_container.c
index 7370d7cf5988..5bf25c6f966c 100644
--- a/drivers/base/attribute_container.c
+++ b/drivers/base/attribute_container.c
@@ -320,9 +320,14 @@ attribute_container_add_attrs(struct class_device *classdev)
320 struct class_device_attribute **attrs = cont->attrs; 320 struct class_device_attribute **attrs = cont->attrs;
321 int i, error; 321 int i, error;
322 322
323 if (!attrs) 323 BUG_ON(attrs && cont->grp);
324
325 if (!attrs && !cont->grp)
324 return 0; 326 return 0;
325 327
328 if (cont->grp)
329 return sysfs_create_group(&classdev->kobj, cont->grp);
330
326 for (i = 0; attrs[i]; i++) { 331 for (i = 0; attrs[i]; i++) {
327 error = class_device_create_file(classdev, attrs[i]); 332 error = class_device_create_file(classdev, attrs[i]);
328 if (error) 333 if (error)
@@ -378,9 +383,14 @@ attribute_container_remove_attrs(struct class_device *classdev)
378 struct class_device_attribute **attrs = cont->attrs; 383 struct class_device_attribute **attrs = cont->attrs;
379 int i; 384 int i;
380 385
381 if (!attrs) 386 if (!attrs && !cont->grp)
382 return; 387 return;
383 388
389 if (cont->grp) {
390 sysfs_remove_group(&classdev->kobj, cont->grp);
391 return ;
392 }
393
384 for (i = 0; attrs[i]; i++) 394 for (i = 0; attrs[i]; i++)
385 class_device_remove_file(classdev, attrs[i]); 395 class_device_remove_file(classdev, attrs[i]);
386} 396}