diff --git a/src/storagetm/storagetm.c b/src/storagetm/storagetm.c index e0ca51d16d..62b78a350f 100644 --- a/src/storagetm/storagetm.c +++ b/src/storagetm/storagetm.c @@ -381,7 +381,7 @@ static int nvme_subsystem_add(const char *node, int consumed_fd, sd_device *devi return log_error_errno(errno, "Failed to fstat '%s': %m", node); if (S_ISBLK(st.st_mode)) { if (!device) { - r = sd_device_new_from_devnum(&allocated_device, 'b', st.st_dev); + r = sd_device_new_from_devnum(&allocated_device, 'b', st.st_rdev); if (r < 0) return log_error_errno(r, "Failed to get device information for device '%s': %m", node); @@ -788,9 +788,10 @@ typedef struct Context { static void device_hash_func(const struct stat *q, struct siphash *state) { assert(q); + mode_t m = q->st_mode & S_IFMT; + siphash24_compress_typesafe(m, state); + if (S_ISBLK(q->st_mode) || S_ISCHR(q->st_mode)) { - mode_t m = q->st_mode & S_IFMT; - siphash24_compress_typesafe(m, state); siphash24_compress_typesafe(q->st_rdev, state); return; }