- dlist_for_each_data(clsdev->directory->subdirs, sdir,
- struct sysfs_directory) {
- cur = sysfs_get_directory_attribute(sdir,
- (unsigned char *)name);
- if (cur != NULL)
- return cur;
+ if (clsdev->directory->subdirs != NULL) {
+ dlist_for_each_data(clsdev->directory->subdirs, sdir,
+ struct sysfs_directory) {
+ if ((sysfs_path_is_dir(sdir->path)) != 0)
+ continue;
+ if (sdir->attributes == NULL) {
+ cur = sysfs_get_directory_attribute(sdir,
+ (unsigned char *)name);
+ } else {
+ if ((sysfs_refresh_attributes
+ (sdir->attributes)) == 0)
+ cur = sysfs_get_directory_attribute(sdir,
+ (unsigned char *)name);
+ }
+ }