1 From: "J. Bruce Fields" <bfields@redhat.com>
3 By unconditionally adding +/-4.2 to the version string written to the
4 kernel we make nfs-utils incompatible with pre-4.2-supporting kernels.
6 Ditto for 4.1. This problem was introduced by
7 12a590f8d556c00a9502eeebaa763d906222d521 "rpc.nfsd: Allow v4.2 server
8 support with the -V option", which also change nfsd to unconditionally
11 Instead, just don't mention 4.1 or 4.2 unless the commandline has
12 specifically requested that one or the other be turned on or off.
14 Tested-by: Joakim Tjernlund <joakim.tjernlund@transmode.se>
15 Reported-by: Joakim Tjernlund <joakim.tjernlund@transmode.se>
16 Signed-off-by: J. Bruce Fields <bfields@redhat.com>
18 support/include/nfs/nfs.h | 1 -
19 utils/nfsd/nfsd.c | 6 +++---
20 utils/nfsd/nfssvc.c | 6 +++---
21 utils/nfsd/nfssvc.h | 2 +-
22 4 files changed, 7 insertions(+), 8 deletions(-)
24 diff --git a/support/include/nfs/nfs.h b/support/include/nfs/nfs.h
25 index 38db5b5..df4ad76 100644
26 --- a/support/include/nfs/nfs.h
27 +++ b/support/include/nfs/nfs.h
30 #define NFS4_MINMINOR 1
31 #define NFS4_MAXMINOR 2
32 -#define NFS4_VERDEFAULT 0x1 /* minor verion 1 */
36 diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c
37 index 6db92f0..a9d77ab 100644
38 --- a/utils/nfsd/nfsd.c
39 +++ b/utils/nfsd/nfsd.c
40 @@ -99,7 +99,7 @@ main(int argc, char **argv)
41 char *p, *progname, *port;
44 - int minorvers = NFS4_VERDEFAULT; /* nfsv4 minor version */
45 + int minorvers[NFS4_MAXMINOR + 1] = {0};
46 unsigned int versbits = NFSCTL_VERDEFAULT;
47 unsigned int protobits = NFSCTL_ALLBITS;
48 unsigned int proto4 = 0;
49 @@ -164,7 +164,7 @@ main(int argc, char **argv)
50 fprintf(stderr, "%s: unsupported minor version\n", optarg);
53 - NFSCTL_VERUNSET(minorvers, i);
58 @@ -185,7 +185,7 @@ main(int argc, char **argv)
59 fprintf(stderr, "%s: unsupported minor version\n", optarg);
62 - NFSCTL_VERSET(minorvers, i);
67 diff --git a/utils/nfsd/nfssvc.c b/utils/nfsd/nfssvc.c
68 index 8b85846..1b50aba 100644
69 --- a/utils/nfsd/nfssvc.c
70 +++ b/utils/nfsd/nfssvc.c
71 @@ -269,7 +269,7 @@ nfssvc_set_sockets(const int family, const unsigned int protobits,
75 -nfssvc_setvers(unsigned int ctlbits, int minorvers)
76 +nfssvc_setvers(unsigned int ctlbits, int minorvers[])
80 @@ -281,9 +281,9 @@ nfssvc_setvers(unsigned int ctlbits, int minorvers)
83 for (n = NFS4_MINMINOR; n <= NFS4_MAXMINOR; n++) {
84 - if (NFSCTL_VERISSET(minorvers, n))
85 + if (minorvers[n] == 1)
86 off += snprintf(ptr+off, sizeof(buf) - off, "+4.%d ", n);
88 + else if (minorvers[n] == -1)
89 off += snprintf(ptr+off, sizeof(buf) - off, "-4.%d ", n);
91 for (n = NFSD_MINVERS; n <= NFSD_MAXVERS; n++) {
92 diff --git a/utils/nfsd/nfssvc.h b/utils/nfsd/nfssvc.h
93 index 08de0fe..2bbd3d3 100644
94 --- a/utils/nfsd/nfssvc.h
95 +++ b/utils/nfsd/nfssvc.h
96 @@ -24,5 +24,5 @@ void nfssvc_mount_nfsdfs(char *progname);
97 int nfssvc_inuse(void);
98 int nfssvc_set_sockets(const int family, const unsigned int protobits,
99 const char *host, const char *port);
100 -void nfssvc_setvers(unsigned int ctlbits, int minorvers4);
101 +void nfssvc_setvers(unsigned int ctlbits, int minorvers4[]);
102 int nfssvc_threads(unsigned short port, int nrservs);
107 To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
108 the body of a message to majordomo@vger.kernel.org
109 More majordomo info at http://vger.kernel.org/majordomo-info.html