On Fri, Jun 28, 2019 at 07:29:41PM +0000, Martin Wilck wrote:
> From: Martin Wilck <mwi...@suse.com>
> 
> 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 <bmarz...@redhat.com>

> ---
>  kpartx/dasd.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/kpartx/dasd.c b/kpartx/dasd.c
> index 61b609a5..3fcef6ad 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);
>       }
> @@ -277,6 +274,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.21.0
> 

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel

Reply via email to