From: Karel Zak Date: Wed, 21 Aug 2019 08:51:18 +0000 (+0200) Subject: partx: don't report ENXIO as error on -d X-Git-Tag: v2.35-rc1~278 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=53ae7d60cfeacd4e87bfe6fcc015b58b78ef4555;p=thirdparty%2Futil-linux.git partx: don't report ENXIO as error on -d The errno ENXIO should be ignored, unfortunately the current code uses variable 'rc' for ioctl return code as well as for final del_parts() return value. So, failed ioctl (which should be ignored) affects all del_parts() status. # modprobe scsi_debug dev_size_mb=100 # partx -d --nr 1-1024 /dev/sdc; echo $? 1 The device dos not contains any partitions, so 0 return code is expected in this case. Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1739179 Signed-off-by: Karel Zak --- diff --git a/disk-utils/partx.c b/disk-utils/partx.c index 949278eb79..e1f6b8f9e4 100644 --- a/disk-utils/partx.c +++ b/disk-utils/partx.c @@ -328,8 +328,7 @@ static int del_parts(int fd, const char *device, dev_t devno, } for (i = lower; i <= upper; i++) { - rc = partx_del_partition(fd, i); - if (rc == 0) { + if (partx_del_partition(fd, i) == 0) { if (verbose) printf(_("%s: partition #%d removed\n"), device, i); continue;