summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarel Zak2019-08-21 10:51:18 +0200
committerKarel Zak2019-08-21 10:51:18 +0200
commit53ae7d60cfeacd4e87bfe6fcc015b58b78ef4555 (patch)
tree079e8e2e03fe8301ac8f8749bd7e5f71344b2cfb
parentlibmount: fix comment referring to passno field (diff)
downloadkernel-qcow2-util-linux-53ae7d60cfeacd4e87bfe6fcc015b58b78ef4555.tar.gz
kernel-qcow2-util-linux-53ae7d60cfeacd4e87bfe6fcc015b58b78ef4555.tar.xz
kernel-qcow2-util-linux-53ae7d60cfeacd4e87bfe6fcc015b58b78ef4555.zip
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 <kzak@redhat.com>
-rw-r--r--disk-utils/partx.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/disk-utils/partx.c b/disk-utils/partx.c
index 949278eb7..e1f6b8f9e 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;