|
Ian Kent |
cc58c1 |
autofs-5.0.6 - fix kernel verion check of version components
|
|
Ian Kent |
cc58c1 |
|
|
Ian Kent |
cc58c1 |
From: Ian Kent <ikent@redhat.com>
|
|
Ian Kent |
cc58c1 |
|
|
Ian Kent |
cc58c1 |
Oops, not following the ball.
|
|
Ian Kent |
cc58c1 |
|
|
Ian Kent |
cc58c1 |
The kernel may have (or will have at times) a two digit version number.
|
|
Ian Kent |
cc58c1 |
Fix the version check function to allow for this.
|
|
Ian Kent |
cc58c1 |
---
|
|
Ian Kent |
cc58c1 |
|
|
Ian Kent |
cc58c1 |
CHANGELOG | 1 +
|
|
Ian Kent |
cc58c1 |
include/mounts.h | 15 +--------------
|
|
Ian Kent |
cc58c1 |
lib/mounts.c | 29 +++++++++++++++++++++++++++++
|
|
Ian Kent |
cc58c1 |
3 files changed, 31 insertions(+), 14 deletions(-)
|
|
Ian Kent |
cc58c1 |
|
|
Ian Kent |
cc58c1 |
|
|
Ian Kent |
cc58c1 |
--- autofs-5.0.6.orig/CHANGELOG
|
|
Ian Kent |
cc58c1 |
+++ autofs-5.0.6/CHANGELOG
|
|
Ian Kent |
cc58c1 |
@@ -46,6 +46,7 @@
|
|
Ian Kent |
cc58c1 |
- duplicate parent options for included maps.
|
|
Ian Kent |
cc58c1 |
- update ->timeout() function to not return timeout.
|
|
Ian Kent |
cc58c1 |
- move timeout to map_source (allow per direct map timeout).
|
|
Ian Kent |
cc58c1 |
+- fix kernel verion check of version components.
|
|
Ian Kent |
cc58c1 |
|
|
Ian Kent |
cc58c1 |
28/06/2011 autofs-5.0.6
|
|
Ian Kent |
cc58c1 |
-----------------------
|
|
Ian Kent |
cc58c1 |
--- autofs-5.0.6.orig/include/mounts.h
|
|
Ian Kent |
cc58c1 |
+++ autofs-5.0.6/include/mounts.h
|
|
Ian Kent |
cc58c1 |
@@ -75,26 +75,13 @@ struct mnt_list {
|
|
Ian Kent |
cc58c1 |
struct list_head ordered;
|
|
Ian Kent |
cc58c1 |
};
|
|
Ian Kent |
cc58c1 |
|
|
Ian Kent |
cc58c1 |
-static inline unsigned int linux_version_code(void)
|
|
Ian Kent |
cc58c1 |
-{
|
|
Ian Kent |
cc58c1 |
- struct utsname my_utsname;
|
|
Ian Kent |
cc58c1 |
- unsigned int p, q, r;
|
|
Ian Kent |
cc58c1 |
- char *save;
|
|
Ian Kent |
cc58c1 |
-
|
|
Ian Kent |
cc58c1 |
- if (uname(&my_utsname))
|
|
Ian Kent |
cc58c1 |
- return 0;
|
|
Ian Kent |
cc58c1 |
-
|
|
Ian Kent |
cc58c1 |
- p = (unsigned int) atoi(strtok_r(my_utsname.release, ".", &save));
|
|
Ian Kent |
cc58c1 |
- q = (unsigned int) atoi(strtok_r(NULL, ".", &save));
|
|
Ian Kent |
cc58c1 |
- r = (unsigned int) atoi(strtok_r(NULL, ".", &save));
|
|
Ian Kent |
cc58c1 |
- return KERNEL_VERSION(p, q, r);
|
|
Ian Kent |
cc58c1 |
-}
|
|
Ian Kent |
cc58c1 |
|
|
Ian Kent |
cc58c1 |
struct nfs_mount_vers {
|
|
Ian Kent |
cc58c1 |
unsigned int major;
|
|
Ian Kent |
cc58c1 |
unsigned int minor;
|
|
Ian Kent |
cc58c1 |
unsigned int fix;
|
|
Ian Kent |
cc58c1 |
};
|
|
Ian Kent |
cc58c1 |
+unsigned int linux_version_code(void);
|
|
Ian Kent |
cc58c1 |
int check_nfs_mount_version(struct nfs_mount_vers *, struct nfs_mount_vers *);
|
|
Ian Kent |
cc58c1 |
extern unsigned int nfs_mount_uses_string_options;
|
|
Ian Kent |
cc58c1 |
|
|
Ian Kent |
cc58c1 |
--- autofs-5.0.6.orig/lib/mounts.c
|
|
Ian Kent |
cc58c1 |
+++ autofs-5.0.6/lib/mounts.c
|
|
Ian Kent |
cc58c1 |
@@ -46,6 +46,35 @@ static const char mnt_name_template[]
|
|
Ian Kent |
cc58c1 |
static struct kernel_mod_version kver = {0, 0};
|
|
Ian Kent |
cc58c1 |
static const char kver_options_template[] = "fd=%d,pgrp=%u,minproto=3,maxproto=5";
|
|
Ian Kent |
cc58c1 |
|
|
Ian Kent |
cc58c1 |
+unsigned int linux_version_code(void)
|
|
Ian Kent |
cc58c1 |
+{
|
|
Ian Kent |
cc58c1 |
+ struct utsname my_utsname;
|
|
Ian Kent |
cc58c1 |
+ unsigned int p, q, r;
|
|
Ian Kent |
cc58c1 |
+ char *tmp, *save;
|
|
Ian Kent |
cc58c1 |
+
|
|
Ian Kent |
cc58c1 |
+ if (uname(&my_utsname))
|
|
Ian Kent |
cc58c1 |
+ return 0;
|
|
Ian Kent |
cc58c1 |
+
|
|
Ian Kent |
cc58c1 |
+ p = q = r = 0;
|
|
Ian Kent |
cc58c1 |
+
|
|
Ian Kent |
cc58c1 |
+ tmp = strtok_r(my_utsname.release, ".", &save);
|
|
Ian Kent |
cc58c1 |
+ if (!tmp)
|
|
Ian Kent |
cc58c1 |
+ return 0;
|
|
Ian Kent |
cc58c1 |
+ p = (unsigned int ) atoi(tmp);
|
|
Ian Kent |
cc58c1 |
+
|
|
Ian Kent |
cc58c1 |
+ tmp = strtok_r(NULL, ".", &save);
|
|
Ian Kent |
cc58c1 |
+ if (!tmp)
|
|
Ian Kent |
cc58c1 |
+ return KERNEL_VERSION(p, 0, 0);
|
|
Ian Kent |
cc58c1 |
+ q = (unsigned int) atoi(tmp);
|
|
Ian Kent |
cc58c1 |
+
|
|
Ian Kent |
cc58c1 |
+ tmp = strtok_r(NULL, ".", &save);
|
|
Ian Kent |
cc58c1 |
+ if (!tmp)
|
|
Ian Kent |
cc58c1 |
+ return KERNEL_VERSION(p, q, 0);
|
|
Ian Kent |
cc58c1 |
+ r = (unsigned int) atoi(tmp);
|
|
Ian Kent |
cc58c1 |
+
|
|
Ian Kent |
cc58c1 |
+ return KERNEL_VERSION(p, q, r);
|
|
Ian Kent |
cc58c1 |
+}
|
|
Ian Kent |
cc58c1 |
+
|
|
Ian Kent |
cc58c1 |
unsigned int query_kproto_ver(void)
|
|
Ian Kent |
cc58c1 |
{
|
|
Ian Kent |
cc58c1 |
struct ioctl_ops *ops = get_ioctl_ops();
|