Re: dm multipath kernel driver version too old - 2.6.32

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2010-01-01 at 19:24 -0500, Mike Snitzer wrote: 
> On Thu, Dec 31 2009 at  2:59am -0500,
> John A. Sullivan III <jsullivan@xxxxxxxxxxxxxxxxxxx> wrote:
> 
> > Hello, all.  We are attempting to upgrade our kernel on our VServer
> > hosts from 2.6.28 to 2.6.32.1.  After some initial grief, we thought we
> > were successful until multipath kicked in and we received an error
> > message:
> > 
> > DM multipath kernel driver version too old
> > 
> > In the RAID and LVM section of our kernel configuration, we have enabled
> > Multipath I/O support.  We have then created modules for Multipath
> > target and both I/O Path Selectors (in-flight I/Os and service time).
> > 
> > We are running fully patched CentOS 5.4.  What have we done wrong?
> > Thanks - John
> 
> Linux >= 2.6.31 has a DM multipath target version that was bumped to >=
> 1.1.0 (for request-based multipath et al).
> 
> The device-mapper-multipath in 5.4 has:
> multipath/main.c:     if (dm_prereq(DEFAULT_TARGET, 1, 0, 3))
> 
> But 5.4's dm_prereq() is too simplistic to handle the higher DM target
> version numbers that Linux >= 2.6.31 has for the DM multipath target.
> 
> Upstream multipath-tools can handle the newer DM target versions
> properly.  5.4's device-mapper-multipath-tools can be patched with
> something like the following (note this is white-space damaged, but you
> get the idea):
> 
> @@ -107,10 +107,10 @@ dm_prereq (char * str, int x, int y, int z)
>  
>                 if (!strncmp(str, target->name, strlen(str))) {
>                         r--;
> -                       
> -                       if (target->version[0] >= x &&
> -                           target->version[1] >= y &&
> -                           target->version[2] >= z)
> +
> +                       if ((target->version[0] > x) ||
> +                           ((target->version[0] ==  x) && (target->version[1] > y)) ||
> +                           ((target->version[0] == x) && (target->version[1] == y) && (target->version[2] >= z)))
>                                 r--;
> 
> 			break;
> 
> But again: upstream multipath-tools already has a nicer fix.
> 
> --
> dm-devel mailing list
> dm-devel@xxxxxxxxxx
> https://www.redhat.com/mailman/listinfo/dm-devel

Thanks very, very much to both respondents.  I was feeling quite
befuddled.  I'll give upstream a try and see how I fare.  Thanks again -
John

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

[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux