+ paths = dir_list("/dev", filter_sd);
+
+ result = sensors;
+ tmp = paths;
+ while (*tmp) {
+ log_debug("hdd_psensor_list_add open %s", tmp);
+
+ if (!sk_disk_open(*tmp, &disk)) {
+ char *id = malloc(strlen("hdd at") + strlen(*tmp) + 1);
+ strcpy(id, "hdd at");
+ strcat(id, *tmp);
+
+ sensor = create_sensor(id, *tmp, values_max_length);
+
+ tmp_sensors = psensor_list_add(result, sensor);
+
+ if (result != sensors)
+ free(result);
+
+ result = tmp_sensors;
+ } else {
+ log_err("Failed to open %s", *tmp);
+ }
+
+ tmp++;
+ }
+
+ paths_free(paths);
+
+ return result;