+ struct psensor **cur, *s;
+ uint64_t kelvin;
+ int ret;
+ double c;
+
+ cur = sensors;
+ while (*cur) {
+ s = *cur;
+ if (s->type == SENSOR_TYPE_HDD_TEMP_ATASMART) {
+ ret = sk_disk_smart_read_data(s->disk);
+
+ if (!ret) {
+ ret = sk_disk_smart_get_temperature(s->disk,
+ &kelvin);
+
+ if (!ret) {
+ c = (kelvin - 273150) / 1000;
+ psensor_set_current_value(s, c);
+ log_debug("hdd atasmart: %s %.2f",
+ s->id,
+ c);
+ }
+ }
+ }
+
+ cur++;
+ }