From: Martin Wilck <mwilck@xxxxxxxx> Since 4d57b868, DASD partition tables are only recognized on DASD hardware. This turns out to break certain software that works e.g. with DASD partition tables on loop devices. The problem that 4d57b868 attempted to fix was that "unlabeled disk" format has no signature at all and is detected on any volume, including empty ones. With this patch, DASD partition table formats other than "unlabeled disk" are detected on non-DASD devices again. Fixes: 4d57b868 "kpartx: only recognize dasd part table on DASD" Reviewed-by: Benjamin Marzinski <bmarzins@xxxxxxxxxx> Signed-off-by: Martin Wilck <mwilck@xxxxxxxx> --- kpartx/dasd.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/kpartx/dasd.c b/kpartx/dasd.c index d95d8ca0..4e7e4743 100644 --- a/kpartx/dasd.c +++ b/kpartx/dasd.c @@ -133,9 +133,6 @@ read_dasd_pt(int fd, struct slice all, struct slice *sp, int ns) /* Couldn't open the device */ return -1; } - } else if ((unsigned int)major(sbuf.st_rdev) != 94) { - /* Not a DASD */ - return -1; } else { fd_dasd = dup(fd); if (fd_dasd < 0) @@ -279,6 +276,10 @@ read_dasd_pt(int fd, struct slice all, struct slice *sp, int ns) size = disksize; if (fmt_size < size) size = fmt_size; + } else if ((unsigned int)major(sbuf.st_rdev) != 94) { + /* Not a DASD */ + retval = -1; + goto out; } else size = disksize; -- 2.22.0 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel