]> sourceware.org Git - lvm2.git/commitdiff
Accept kernel version 3 (3.0-rc and similar).
authorMilan Broz <mbroz@redhat.com>
Thu, 9 Jun 2011 15:07:40 +0000 (15:07 +0000)
committerMilan Broz <mbroz@redhat.com>
Thu, 9 Jun 2011 15:07:40 +0000 (15:07 +0000)
WHATS_NEW_DM
libdm/ioctl/libdm-iface.c

index 5b2a6037703ffbbc0aabf780c108619c43695957..278bdf8a25cf43bef9646e2488716cce7376f3fb 100644 (file)
@@ -1,5 +1,6 @@
 Version 1.02.65 - 
 ==================================
+  Accept new kernel version 3 formats in initialisation.
 
 Version 1.02.64 - 29th April 2011
 ==================================
index f54cf1d202b0fab127352cf3b6f4e8ab787083c4..ad343447201b7f6e1d73111ffdfeb9124db718d1 100644 (file)
@@ -73,9 +73,9 @@ static unsigned _dm_version_minor = 0;
 static unsigned _dm_version_patchlevel = 0;
 static int _log_suppress = 0;
 
-static int _kernel_major;
-static int _kernel_minor;
-static int _kernel_release;
+static int _kernel_major = 0;
+static int _kernel_minor = 0;
+static int _kernel_release = 0;
 
 /*
  * If the kernel dm driver only supports one major number
@@ -152,6 +152,7 @@ static int _uname(void)
 {
        static int _uts_set = 0;
        struct utsname _uts;
+       int parts;
 
        if (_uts_set)
                return 1;
@@ -160,10 +161,14 @@ static int _uname(void)
                log_error("uname failed: %s", strerror(errno));
                return 0;
        }
-       if (sscanf(_uts.release, "%d.%d.%d",
+
+       parts = sscanf(_uts.release, "%d.%d.%d",
                        &_kernel_major,
                        &_kernel_minor,
-                       &_kernel_release) != 3) {
+                       &_kernel_release);
+
+       /* Kernels with a major number of 2 always had 3 parts. */
+       if (parts < 1 || (_kernel_major < 3 && parts < 3)) {
                log_error("Could not determine kernel version used.");
                return 0;
        }
This page took 0.034686 seconds and 5 git commands to generate.