[PATCH] mdadm: Linux 3.x version change
am 10.06.2011 16:30:00 von Namhyung Kim
As Linux 3.x changes its versioning scheme, we have to deal with
the 2-digit version number also.
Signed-off-by: Namhyung Kim
---
util.c | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/util.c b/util.c
index e92be4f..9db9ee6 100644
--- a/util.c
+++ b/util.c
@@ -154,8 +154,15 @@ int get_linux_version()
a = strtoul(cp, &cp, 10);
if (*cp != '.') return -1;
b = strtoul(cp+1, &cp, 10);
- if (*cp != '.') return -1;
- c = strtoul(cp+1, NULL, 10);
+ /* deal with 3.x version change */
+ if (*cp != '.') {
+ if (a >= 3)
+ c = 0;
+ else
+ return -1;
+ } else {
+ c = strtoul(cp+1, NULL, 10);
+ }
return (a*1000000)+(b*1000)+c;
}
--
1.7.5.2
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] mdadm: Linux 3.x version change
am 17.06.2011 14:18:47 von Milan Broz
On 06/10/2011 04:30 PM, Namhyung Kim wrote:
> As Linux 3.x changes its versioning scheme, we have to deal with
> the 2-digit version number also.
FYI: we have patch below currently in Fedora rawhide
(which already switched to 3.0-rc numbering scheme).
Without it is system unable to assembly RAID during boot
("mdadm -As --auto=yes --run" fails because of wrong version detected).
It seems that 3.2.2 still have the same problem.
Milan
--- mdadm-3.2.1.old/util.c 2011-03-28 04:31:20.000000000 +0200
+++ mdadm-3.2.1/util.c 2011-06-05 07:59:03.741904751 +0200
@@ -154,8 +154,8 @@ int get_linux_version()
a = strtoul(cp, &cp, 10);
if (*cp != '.') return -1;
b = strtoul(cp+1, &cp, 10);
- if (*cp != '.') return -1;
- c = strtoul(cp+1, NULL, 10);
+ if (*cp != '.' && a <= 2) return -1;
+ c = (*cp == '.') ? strtoul(cp+1, NULL, 10) : 0;
return (a*1000000)+(b*1000)+c;
}
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] mdadm: Linux 3.x version change
am 17.06.2011 14:54:04 von NeilBrown
On Fri, 17 Jun 2011 14:18:47 +0200 Milan Broz wrote:
> On 06/10/2011 04:30 PM, Namhyung Kim wrote:
> > As Linux 3.x changes its versioning scheme, we have to deal with
> > the 2-digit version number also.
> FYI: we have patch below currently in Fedora rawhide
> (which already switched to 3.0-rc numbering scheme).
>
> Without it is system unable to assembly RAID during boot
> ("mdadm -As --auto=yes --run" fails because of wrong version detected).
>
> It seems that 3.2.2 still have the same problem.
>
> Milan
>
> --- mdadm-3.2.1.old/util.c 2011-03-28 04:31:20.000000000 +0200
> +++ mdadm-3.2.1/util.c 2011-06-05 07:59:03.741904751 +0200
> @@ -154,8 +154,8 @@ int get_linux_version()
> a = strtoul(cp, &cp, 10);
> if (*cp != '.') return -1;
> b = strtoul(cp+1, &cp, 10);
> - if (*cp != '.') return -1;
> - c = strtoul(cp+1, NULL, 10);
> + if (*cp != '.' && a <= 2) return -1;
> + c = (*cp == '.') ? strtoul(cp+1, NULL, 10) : 0;
>
> return (a*1000000)+(b*1000)+c;
> }
>
Bother - I always seem to miss something :-(
I have added the following (which is different yet again) to git.
According to https://lwn.net/Articles/447572/ it seems it isn't yet 100%
certain that the next version will be 3.0 rather than 3.0.0.... So I might
not need to push out a new version too quickly.
Thanks,
NeilBrown
From f161d047eed634b3380262767f955eb888502e88 Mon Sep 17 00:00:00 2001
From: NeilBrown
Date: Fri, 17 Jun 2011 22:49:24 +1000
Subject: [PATCH] util: correctly parse shorter linux version numbers.
The next version of Linux might be 3.0. If it is, get_linux_version
will fail.
So make it more robust.
Reported-by: Namhyung Kim
Reported-by: Milan Broz
Signed-off-by: NeilBrown
---
util.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/util.c b/util.c
index 10bbe56..55d171a 100644
--- a/util.c
+++ b/util.c
@@ -146,16 +146,16 @@ int get_linux_version()
{
struct utsname name;
char *cp;
- int a,b,c;
+ int a = 0, b = 0,c = 0;
if (uname(&name) <0)
return -1;
cp = name.release;
a = strtoul(cp, &cp, 10);
- if (*cp != '.') return -1;
- b = strtoul(cp+1, &cp, 10);
- if (*cp != '.') return -1;
- c = strtoul(cp+1, NULL, 10);
+ if (*cp == '.')
+ b = strtoul(cp+1, &cp, 10);
+ if (*cp == '.')
+ c = strtoul(cp+1, &cp, 10);
return (a*1000000)+(b*1000)+c;
}
--
1.7.3.4
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] mdadm: Linux 3.x version change
am 17.06.2011 16:07:34 von David Brown
On 10/06/2011 16:30, Namhyung Kim wrote:
> As Linux 3.x changes its versioning scheme, we have to deal with
> the 2-digit version number also.
>
I don't know what mdadm uses the version number for, but Linus Torvalds
has had a rant about this sort of thing:
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html