Not replacing it with return, because the current behavior is dying:
Can't "next" outside a loop block
and the single existing caller in pve-manager's API2/Ceph/OSD.pm does not check
the return value.
Also check for $st, which can be undefined in case a non-existing path was
provided. This also led to dying previously:
Can't call method "mode" on an undefined value
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
my $st = stat($part_path);
- next if !$st->mode || !S_ISBLK($st->mode) || !$st->rdev;
+ die "error detecting block device '$part_path'\n"
+ if !$st || !$st->mode || !S_ISBLK($st->mode) || !$st->rdev;
+
my $major = PVE::Tools::dev_t_major($st->rdev);
my $minor = PVE::Tools::dev_t_minor($st->rdev);
my $partnum_path = "/sys/dev/block/$major:$minor/";