* nfs-utils-1.2.9 does not play well with linux 3.10.x @ 2013-12-16 18:16 Joakim Tjernlund 2013-12-16 18:54 ` J. Bruce Fields 0 siblings, 1 reply; 14+ messages in thread From: Joakim Tjernlund @ 2013-12-16 18:16 UTC (permalink / raw) To: linux-nfs rpc.nfsd insists on adding "-4.2" when writing /proc/fs/nfsd/versions : rpc.nfsd: Writing version string to kernel: +4.1 -4.2 -2 +3 +4 Which causes Linux to return an EIVAL error as 3.10 has no support for 4.2 and does not accept any reference to 4.2 It seems reasonable to me that Linux should accpect -4.2 as a noop and continue processing the rest of the options but I am just guessing. Anyhow, just to test I applied this commit to my 3.10.24 kernel: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4bdc33ed5bd9fbaa243bda6fdccb22674aed6305 and now it accepts the "-4.2" but I have no idea if this messes up something else. Ideas? Jocke ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: nfs-utils-1.2.9 does not play well with linux 3.10.x 2013-12-16 18:16 nfs-utils-1.2.9 does not play well with linux 3.10.x Joakim Tjernlund @ 2013-12-16 18:54 ` J. Bruce Fields 2013-12-16 20:03 ` J. Bruce Fields 0 siblings, 1 reply; 14+ messages in thread From: J. Bruce Fields @ 2013-12-16 18:54 UTC (permalink / raw) To: Joakim Tjernlund; +Cc: linux-nfs, steved On Mon, Dec 16, 2013 at 07:16:00PM +0100, Joakim Tjernlund wrote: > rpc.nfsd insists on adding "-4.2" when writing /proc/fs/nfsd/versions : > rpc.nfsd: Writing version string to kernel: +4.1 -4.2 -2 +3 +4 > Which causes Linux to return an EIVAL error as 3.10 has no support for 4.2 > and > does not accept any reference to 4.2 > > It seems reasonable to me that Linux should accpect -4.2 as a noop and > continue > processing the rest of the options but I am just guessing. > Anyhow, just to test I applied this commit to my 3.10.24 kernel: > > http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4bdc33ed5bd9fbaa243bda6fdccb22674aed6305 > and now it accepts the "-4.2" but I have no idea if this messes up > something else. That should be perfectly safe. I agree that we should teach the kernel to treat "-4.x" at least as a no-op for unknown .x. But nfs-utils also has to keep working with older kernels which don't do that. The problem was introduced by 12a590f8d556c00a9502eeebaa763d906222d521 "rpc.nfsd: Allow v4.2 server support with the -V option". That should be using an array of ints not a bit array, so it can make the distinction between "off", "on", and "don't care". --b. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: nfs-utils-1.2.9 does not play well with linux 3.10.x 2013-12-16 18:54 ` J. Bruce Fields @ 2013-12-16 20:03 ` J. Bruce Fields 2013-12-16 20:21 ` Joakim Tjernlund 0 siblings, 1 reply; 14+ messages in thread From: J. Bruce Fields @ 2013-12-16 20:03 UTC (permalink / raw) To: Joakim Tjernlund; +Cc: linux-nfs, steved On Mon, Dec 16, 2013 at 01:54:19PM -0500, bfields wrote: > On Mon, Dec 16, 2013 at 07:16:00PM +0100, Joakim Tjernlund wrote: > > rpc.nfsd insists on adding "-4.2" when writing /proc/fs/nfsd/versions : > > rpc.nfsd: Writing version string to kernel: +4.1 -4.2 -2 +3 +4 > > Which causes Linux to return an EIVAL error as 3.10 has no support for 4.2 > > and > > does not accept any reference to 4.2 > > > > It seems reasonable to me that Linux should accpect -4.2 as a noop and > > continue > > processing the rest of the options but I am just guessing. > > Anyhow, just to test I applied this commit to my 3.10.24 kernel: > > > > http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4bdc33ed5bd9fbaa243bda6fdccb22674aed6305 > > and now it accepts the "-4.2" but I have no idea if this messes up > > something else. > > That should be perfectly safe. > > I agree that we should teach the kernel to treat "-4.x" at least as a > no-op for unknown .x. But nfs-utils also has to keep working with older > kernels which don't do that. > > The problem was introduced by 12a590f8d556c00a9502eeebaa763d906222d521 > "rpc.nfsd: Allow v4.2 server support with the -V option". That should > be using an array of ints not a bit array, so it can make the > distinction between "off", "on", and "don't care". So, something like this (untested).--b. diff --git a/support/include/nfs/nfs.h b/support/include/nfs/nfs.h index 38db5b5..df4ad76 100644 --- a/support/include/nfs/nfs.h +++ b/support/include/nfs/nfs.h @@ -17,7 +17,6 @@ #define NFS4_MINMINOR 1 #define NFS4_MAXMINOR 2 -#define NFS4_VERDEFAULT 0x1 /* minor verion 1 */ struct nfs_fh_len { int fh_size; diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c index 6db92f0..a9d77ab 100644 --- a/utils/nfsd/nfsd.c +++ b/utils/nfsd/nfsd.c @@ -99,7 +99,7 @@ main(int argc, char **argv) char *p, *progname, *port; char *haddr = NULL; int socket_up = 0; - int minorvers = NFS4_VERDEFAULT; /* nfsv4 minor version */ + int minorvers[NFS4_MAXMINOR + 1] = {0}; unsigned int versbits = NFSCTL_VERDEFAULT; unsigned int protobits = NFSCTL_ALLBITS; unsigned int proto4 = 0; @@ -164,7 +164,7 @@ main(int argc, char **argv) fprintf(stderr, "%s: unsupported minor version\n", optarg); exit(1); } - NFSCTL_VERUNSET(minorvers, i); + minorvers[i] = -1; break; } case 3: @@ -185,7 +185,7 @@ main(int argc, char **argv) fprintf(stderr, "%s: unsupported minor version\n", optarg); exit(1); } - NFSCTL_VERSET(minorvers, i); + minorvers[i] = 1; break; } case 3: diff --git a/utils/nfsd/nfssvc.c b/utils/nfsd/nfssvc.c index 8b85846..1b50aba 100644 --- a/utils/nfsd/nfssvc.c +++ b/utils/nfsd/nfssvc.c @@ -269,7 +269,7 @@ nfssvc_set_sockets(const int family, const unsigned int protobits, } void -nfssvc_setvers(unsigned int ctlbits, int minorvers) +nfssvc_setvers(unsigned int ctlbits, int minorvers[]) { int fd, n, off; char *ptr; @@ -281,9 +281,9 @@ nfssvc_setvers(unsigned int ctlbits, int minorvers) return; for (n = NFS4_MINMINOR; n <= NFS4_MAXMINOR; n++) { - if (NFSCTL_VERISSET(minorvers, n)) + if (minorvers[n] == 1) off += snprintf(ptr+off, sizeof(buf) - off, "+4.%d ", n); - else + else if (minorvers[n] == -1) off += snprintf(ptr+off, sizeof(buf) - off, "-4.%d ", n); } for (n = NFSD_MINVERS; n <= NFSD_MAXVERS; n++) { diff --git a/utils/nfsd/nfssvc.h b/utils/nfsd/nfssvc.h index 08de0fe..2bbd3d3 100644 --- a/utils/nfsd/nfssvc.h +++ b/utils/nfsd/nfssvc.h @@ -24,5 +24,5 @@ void nfssvc_mount_nfsdfs(char *progname); int nfssvc_inuse(void); int nfssvc_set_sockets(const int family, const unsigned int protobits, const char *host, const char *port); -void nfssvc_setvers(unsigned int ctlbits, int minorvers4); +void nfssvc_setvers(unsigned int ctlbits, int minorvers4[]); int nfssvc_threads(unsigned short port, int nrservs); ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: nfs-utils-1.2.9 does not play well with linux 3.10.x 2013-12-16 20:03 ` J. Bruce Fields @ 2013-12-16 20:21 ` Joakim Tjernlund 2013-12-16 20:23 ` J. Bruce Fields 0 siblings, 1 reply; 14+ messages in thread From: Joakim Tjernlund @ 2013-12-16 20:21 UTC (permalink / raw) To: J. Bruce Fields; +Cc: linux-nfs, steved "J. Bruce Fields" <bfields@fieldses.org> wrote on 2013/12/16 21:03:01: > From: "J. Bruce Fields" <bfields@fieldses.org> > To: Joakim Tjernlund <joakim.tjernlund@transmode.se>, > Cc: linux-nfs@vger.kernel.org, steved@redhat.com > Date: 2013/12/16 21:03 > Subject: Re: nfs-utils-1.2.9 does not play well with linux 3.10.x > > On Mon, Dec 16, 2013 at 01:54:19PM -0500, bfields wrote: > > On Mon, Dec 16, 2013 at 07:16:00PM +0100, Joakim Tjernlund wrote: > > > rpc.nfsd insists on adding "-4.2" when writing /proc/fs/nfsd/versions : > > > rpc.nfsd: Writing version string to kernel: +4.1 -4.2 -2 +3 +4 > > > Which causes Linux to return an EIVAL error as 3.10 has no support for 4.2 > > > and > > > does not accept any reference to 4.2 > > > > > > It seems reasonable to me that Linux should accpect -4.2 as a noop and > > > continue > > > processing the rest of the options but I am just guessing. > > > Anyhow, just to test I applied this commit to my 3.10.24 kernel: > > > > > > http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4bdc33ed5bd9fbaa243bda6fdccb22674aed6305 > > > and now it accepts the "-4.2" but I have no idea if this messes up > > > something else. > > > > That should be perfectly safe. Thanks, I will keep this then until nfs-utils is working. > > > > I agree that we should teach the kernel to treat "-4.x" at least as a > > no-op for unknown .x. But nfs-utils also has to keep working with older > > kernels which don't do that. > > > > The problem was introduced by 12a590f8d556c00a9502eeebaa763d906222d521 > > "rpc.nfsd: Allow v4.2 server support with the -V option". That should > > be using an array of ints not a bit array, so it can make the > > distinction between "off", "on", and "don't care". > > So, something like this (untested).--b. I tested this on my system(which has the above kernel patch) and I noticed a difference: rpc.nfsd: Writing version string to kernel: -2 +3 +4 which is different than previous rpc.nfsd: Writing version string to kernel: +4.1 -4.2 -2 +3 +4 The "+4.1" is missing. Jocke ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: nfs-utils-1.2.9 does not play well with linux 3.10.x 2013-12-16 20:21 ` Joakim Tjernlund @ 2013-12-16 20:23 ` J. Bruce Fields 2013-12-16 22:24 ` Joakim Tjernlund 0 siblings, 1 reply; 14+ messages in thread From: J. Bruce Fields @ 2013-12-16 20:23 UTC (permalink / raw) To: Joakim Tjernlund; +Cc: linux-nfs, steved On Mon, Dec 16, 2013 at 09:21:15PM +0100, Joakim Tjernlund wrote: > "J. Bruce Fields" <bfields@fieldses.org> wrote on 2013/12/16 21:03:01: > > > From: "J. Bruce Fields" <bfields@fieldses.org> > > To: Joakim Tjernlund <joakim.tjernlund@transmode.se>, > > Cc: linux-nfs@vger.kernel.org, steved@redhat.com > > Date: 2013/12/16 21:03 > > Subject: Re: nfs-utils-1.2.9 does not play well with linux 3.10.x > > > > On Mon, Dec 16, 2013 at 01:54:19PM -0500, bfields wrote: > > > On Mon, Dec 16, 2013 at 07:16:00PM +0100, Joakim Tjernlund wrote: > > > > rpc.nfsd insists on adding "-4.2" when writing > /proc/fs/nfsd/versions : > > > > rpc.nfsd: Writing version string to kernel: +4.1 -4.2 -2 +3 +4 > > > > Which causes Linux to return an EIVAL error as 3.10 has no support > for 4.2 > > > > and > > > > does not accept any reference to 4.2 > > > > > > > > It seems reasonable to me that Linux should accpect -4.2 as a noop > and > > > > continue > > > > processing the rest of the options but I am just guessing. > > > > Anyhow, just to test I applied this commit to my 3.10.24 kernel: > > > > > > > > > http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4bdc33ed5bd9fbaa243bda6fdccb22674aed6305 > > > > > and now it accepts the "-4.2" but I have no idea if this messes up > > > > something else. > > > > > > That should be perfectly safe. > > Thanks, I will keep this then until nfs-utils is working. > > > > > > > I agree that we should teach the kernel to treat "-4.x" at least as a > > > no-op for unknown .x. But nfs-utils also has to keep working with > older > > > kernels which don't do that. > > > > > > The problem was introduced by 12a590f8d556c00a9502eeebaa763d906222d521 > > > "rpc.nfsd: Allow v4.2 server support with the -V option". That should > > > be using an array of ints not a bit array, so it can make the > > > distinction between "off", "on", and "don't care". > > > > So, something like this (untested).--b. > > I tested this on my system(which has the above kernel patch) and I noticed > a difference: Thanks! > rpc.nfsd: Writing version string to kernel: -2 +3 +4 > which is different than previous > rpc.nfsd: Writing version string to kernel: +4.1 -4.2 -2 +3 +4 > > The "+4.1" is missing. Yes, that's intentional. Is it causing you any problem? --b. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: nfs-utils-1.2.9 does not play well with linux 3.10.x 2013-12-16 20:23 ` J. Bruce Fields @ 2013-12-16 22:24 ` Joakim Tjernlund 2013-12-17 3:38 ` J. Bruce Fields 2013-12-17 3:43 ` [PATCH] nfsd: fix minorversion-choosing interface J. Bruce Fields 0 siblings, 2 replies; 14+ messages in thread From: Joakim Tjernlund @ 2013-12-16 22:24 UTC (permalink / raw) To: J. Bruce Fields; +Cc: linux-nfs, steved "J. Bruce Fields" <bfields@fieldses.org> wrote on 2013/12/16 21:23:45: > From: "J. Bruce Fields" <bfields@fieldses.org> > To: Joakim Tjernlund <joakim.tjernlund@transmode.se>, > Cc: linux-nfs@vger.kernel.org, steved@redhat.com > Date: 2013/12/16 21:23 > Subject: Re: nfs-utils-1.2.9 does not play well with linux 3.10.x > > On Mon, Dec 16, 2013 at 09:21:15PM +0100, Joakim Tjernlund wrote: > > "J. Bruce Fields" <bfields@fieldses.org> wrote on 2013/12/16 21:03:01: > > > > > From: "J. Bruce Fields" <bfields@fieldses.org> > > > To: Joakim Tjernlund <joakim.tjernlund@transmode.se>, > > > Cc: linux-nfs@vger.kernel.org, steved@redhat.com > > > Date: 2013/12/16 21:03 > > > Subject: Re: nfs-utils-1.2.9 does not play well with linux 3.10.x > > > > > > On Mon, Dec 16, 2013 at 01:54:19PM -0500, bfields wrote: > > > > On Mon, Dec 16, 2013 at 07:16:00PM +0100, Joakim Tjernlund wrote: > > > > > rpc.nfsd insists on adding "-4.2" when writing > > /proc/fs/nfsd/versions : > > > > > rpc.nfsd: Writing version string to kernel: +4.1 -4.2 -2 +3 +4 > > > > > Which causes Linux to return an EIVAL error as 3.10 has no support > > for 4.2 > > > > > and > > > > > does not accept any reference to 4.2 > > > > > > > > > > It seems reasonable to me that Linux should accpect -4.2 as a noop > > and > > > > > continue > > > > > processing the rest of the options but I am just guessing. > > > > > Anyhow, just to test I applied this commit to my 3.10.24 kernel: > > > > > > > > > > > > http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4bdc33ed5bd9fbaa243bda6fdccb22674aed6305 > > > > > > > and now it accepts the "-4.2" but I have no idea if this messes up > > > > > something else. > > > > > > > > That should be perfectly safe. > > > > Thanks, I will keep this then until nfs-utils is working. > > > > > > > > > > I agree that we should teach the kernel to treat "-4.x" at least as a > > > > no-op for unknown .x. But nfs-utils also has to keep working with > > older > > > > kernels which don't do that. > > > > > > > > The problem was introduced by 12a590f8d556c00a9502eeebaa763d906222d521 > > > > "rpc.nfsd: Allow v4.2 server support with the -V option". That should > > > > be using an array of ints not a bit array, so it can make the > > > > distinction between "off", "on", and "don't care". > > > > > > So, something like this (untested).--b. > > > > I tested this on my system(which has the above kernel patch) and I noticed > > a difference: > > Thanks! > > > rpc.nfsd: Writing version string to kernel: -2 +3 +4 > > which is different than previous > > rpc.nfsd: Writing version string to kernel: +4.1 -4.2 -2 +3 +4 > > > > The "+4.1" is missing. > > Yes, that's intentional. Is it causing you any problem? I don't know yet, but I don't think it would be a problem for me. However, are you not changing the defaults here? In that case someone else relying on 4.1 might have a problem I guess. Jocke ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: nfs-utils-1.2.9 does not play well with linux 3.10.x 2013-12-16 22:24 ` Joakim Tjernlund @ 2013-12-17 3:38 ` J. Bruce Fields 2013-12-17 6:30 ` Joakim Tjernlund 2013-12-17 3:43 ` [PATCH] nfsd: fix minorversion-choosing interface J. Bruce Fields 1 sibling, 1 reply; 14+ messages in thread From: J. Bruce Fields @ 2013-12-17 3:38 UTC (permalink / raw) To: Joakim Tjernlund; +Cc: linux-nfs, steved On Mon, Dec 16, 2013 at 11:24:03PM +0100, Joakim Tjernlund wrote: > "J. Bruce Fields" <bfields@fieldses.org> wrote on 2013/12/16 21:23:45: > > > From: "J. Bruce Fields" <bfields@fieldses.org> > > To: Joakim Tjernlund <joakim.tjernlund@transmode.se>, > > Cc: linux-nfs@vger.kernel.org, steved@redhat.com > > Date: 2013/12/16 21:23 > > Subject: Re: nfs-utils-1.2.9 does not play well with linux 3.10.x > > > > On Mon, Dec 16, 2013 at 09:21:15PM +0100, Joakim Tjernlund wrote: > > > "J. Bruce Fields" <bfields@fieldses.org> wrote on 2013/12/16 21:03:01: > > > > > > > From: "J. Bruce Fields" <bfields@fieldses.org> > > > > To: Joakim Tjernlund <joakim.tjernlund@transmode.se>, > > > > Cc: linux-nfs@vger.kernel.org, steved@redhat.com > > > > Date: 2013/12/16 21:03 > > > > Subject: Re: nfs-utils-1.2.9 does not play well with linux 3.10.x > > > > > > > > On Mon, Dec 16, 2013 at 01:54:19PM -0500, bfields wrote: > > > > > On Mon, Dec 16, 2013 at 07:16:00PM +0100, Joakim Tjernlund wrote: > > > > > > rpc.nfsd insists on adding "-4.2" when writing > > > /proc/fs/nfsd/versions : > > > > > > rpc.nfsd: Writing version string to kernel: +4.1 -4.2 -2 +3 +4 > > > > > > Which causes Linux to return an EIVAL error as 3.10 has no > support > > > for 4.2 > > > > > > and > > > > > > does not accept any reference to 4.2 > > > > > > > > > > > > It seems reasonable to me that Linux should accpect -4.2 as a > noop > > > and > > > > > > continue > > > > > > processing the rest of the options but I am just guessing. > > > > > > Anyhow, just to test I applied this commit to my 3.10.24 kernel: > > > > > > > > > > > > > > > > http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4bdc33ed5bd9fbaa243bda6fdccb22674aed6305 > > > > > > > > > > and now it accepts the "-4.2" but I have no idea if this messes > up > > > > > > something else. > > > > > > > > > > That should be perfectly safe. > > > > > > Thanks, I will keep this then until nfs-utils is working. > > > > > > > > > > > > > I agree that we should teach the kernel to treat "-4.x" at least > as a > > > > > no-op for unknown .x. But nfs-utils also has to keep working with > > > > older > > > > > kernels which don't do that. > > > > > > > > > > The problem was introduced by > 12a590f8d556c00a9502eeebaa763d906222d521 > > > > > "rpc.nfsd: Allow v4.2 server support with the -V option". That > should > > > > > be using an array of ints not a bit array, so it can make the > > > > > distinction between "off", "on", and "don't care". > > > > > > > > So, something like this (untested).--b. > > > > > > I tested this on my system(which has the above kernel patch) and I > noticed > > > a difference: > > > > Thanks! > > > > > rpc.nfsd: Writing version string to kernel: -2 +3 +4 > > > which is different than previous > > > rpc.nfsd: Writing version string to kernel: +4.1 -4.2 -2 +3 +4 > > > > > > The "+4.1" is missing. > > > > Yes, that's intentional. Is it causing you any problem? > > I don't know yet, but I don't think it would be a problem for me. > However, are you not changing the defaults here? In that > case someone else relying on 4.1 might have a problem I guess. That's just restoring the behavior we had before 12a590f8d556c00a9502eeebaa763d906222d521, and will still result in 4.1 being turned on if the kernel is recent enough. --b. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: nfs-utils-1.2.9 does not play well with linux 3.10.x 2013-12-17 3:38 ` J. Bruce Fields @ 2013-12-17 6:30 ` Joakim Tjernlund 2013-12-17 15:24 ` J. Bruce Fields 0 siblings, 1 reply; 14+ messages in thread From: Joakim Tjernlund @ 2013-12-17 6:30 UTC (permalink / raw) To: J. Bruce Fields; +Cc: linux-nfs, steved "J. Bruce Fields" <bfields@fieldses.org> wrote on 2013/12/17 04:38:49: > > On Mon, Dec 16, 2013 at 11:24:03PM +0100, Joakim Tjernlund wrote: > > "J. Bruce Fields" <bfields@fieldses.org> wrote on 2013/12/16 21:23:45: > > > > > From: "J. Bruce Fields" <bfields@fieldses.org> > > > To: Joakim Tjernlund <joakim.tjernlund@transmode.se>, > > > Cc: linux-nfs@vger.kernel.org, steved@redhat.com > > > Date: 2013/12/16 21:23 > > > Subject: Re: nfs-utils-1.2.9 does not play well with linux 3.10.x > > > > > > On Mon, Dec 16, 2013 at 09:21:15PM +0100, Joakim Tjernlund wrote: > > > > "J. Bruce Fields" <bfields@fieldses.org> wrote on 2013/12/16 21:03:01: > > > > > > > > > From: "J. Bruce Fields" <bfields@fieldses.org> > > > > > To: Joakim Tjernlund <joakim.tjernlund@transmode.se>, > > > > > Cc: linux-nfs@vger.kernel.org, steved@redhat.com > > > > > Date: 2013/12/16 21:03 > > > > > Subject: Re: nfs-utils-1.2.9 does not play well with linux 3.10.x > > > > > > > > > > On Mon, Dec 16, 2013 at 01:54:19PM -0500, bfields wrote: > > > > > > On Mon, Dec 16, 2013 at 07:16:00PM +0100, Joakim Tjernlund wrote: > > > > > > > rpc.nfsd insists on adding "-4.2" when writing > > > > /proc/fs/nfsd/versions : > > > > > > > rpc.nfsd: Writing version string to kernel: +4.1 -4.2 -2 +3 +4 > > > > > > > Which causes Linux to return an EIVAL error as 3.10 has no > > support > > > > for 4.2 > > > > > > > and > > > > > > > does not accept any reference to 4.2 > > > > > > > > > > > > > > It seems reasonable to me that Linux should accpect -4.2 as a > > noop > > > > and > > > > > > > continue > > > > > > > processing the rest of the options but I am just guessing. > > > > > > > Anyhow, just to test I applied this commit to my 3.10.24 kernel: > > > > > > > > > > > > > > > > > > > > http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4bdc33ed5bd9fbaa243bda6fdccb22674aed6305 > > > > > > > > > > > > > and now it accepts the "-4.2" but I have no idea if this messes > > up > > > > > > > something else. > > > > > > > > > > > > That should be perfectly safe. > > > > > > > > Thanks, I will keep this then until nfs-utils is working. > > > > > > > > > > > > > > > > I agree that we should teach the kernel to treat "-4.x" at least > > as a > > > > > > no-op for unknown .x. But nfs-utils also has to keep working with > > > > > > older > > > > > > kernels which don't do that. > > > > > > > > > > > > The problem was introduced by > > 12a590f8d556c00a9502eeebaa763d906222d521 > > > > > > "rpc.nfsd: Allow v4.2 server support with the -V option". That > > should > > > > > > be using an array of ints not a bit array, so it can make the > > > > > > distinction between "off", "on", and "don't care". > > > > > > > > > > So, something like this (untested).--b. > > > > > > > > I tested this on my system(which has the above kernel patch) and I > > noticed > > > > a difference: > > > > > > Thanks! > > > > > > > rpc.nfsd: Writing version string to kernel: -2 +3 +4 > > > > which is different than previous > > > > rpc.nfsd: Writing version string to kernel: +4.1 -4.2 -2 +3 +4 > > > > > > > > The "+4.1" is missing. > > > > > > Yes, that's intentional. Is it causing you any problem? > > > > I don't know yet, but I don't think it would be a problem for me. > > However, are you not changing the defaults here? In that > > case someone else relying on 4.1 might have a problem I guess. > > That's just restoring the behavior we had before > 12a590f8d556c00a9502eeebaa763d906222d521, and will still result in 4.1 > being turned on if the kernel is recent enough. What is an recent enough kernel? Does not 3.10.24 patched with the patch I mentioned earlier? I thought it would make 3.10 look like a 3.11 which have 4.2 supported. If I am mistaken we good I guess. Jocke ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: nfs-utils-1.2.9 does not play well with linux 3.10.x 2013-12-17 6:30 ` Joakim Tjernlund @ 2013-12-17 15:24 ` J. Bruce Fields 0 siblings, 0 replies; 14+ messages in thread From: J. Bruce Fields @ 2013-12-17 15:24 UTC (permalink / raw) To: Joakim Tjernlund; +Cc: linux-nfs, steved On Tue, Dec 17, 2013 at 07:30:38AM +0100, Joakim Tjernlund wrote: > "J. Bruce Fields" <bfields@fieldses.org> wrote on 2013/12/17 04:38:49: > > > > On Mon, Dec 16, 2013 at 11:24:03PM +0100, Joakim Tjernlund wrote: > > > "J. Bruce Fields" <bfields@fieldses.org> wrote on 2013/12/16 21:23:45: > > > > > > > From: "J. Bruce Fields" <bfields@fieldses.org> > > > > To: Joakim Tjernlund <joakim.tjernlund@transmode.se>, > > > > Cc: linux-nfs@vger.kernel.org, steved@redhat.com > > > > Date: 2013/12/16 21:23 > > > > Subject: Re: nfs-utils-1.2.9 does not play well with linux 3.10.x > > > > > > > > On Mon, Dec 16, 2013 at 09:21:15PM +0100, Joakim Tjernlund wrote: > > > > > I tested this on my system(which has the above kernel patch) and I > > > > noticed > > > > > a difference: > > > > > > > > Thanks! > > > > > > > > > rpc.nfsd: Writing version string to kernel: -2 +3 +4 > > > > > which is different than previous > > > > > rpc.nfsd: Writing version string to kernel: +4.1 -4.2 -2 +3 +4 > > > > > > > > > > The "+4.1" is missing. > > > > > > > > Yes, that's intentional. Is it causing you any problem? > > > > > > I don't know yet, but I don't think it would be a problem for me. > > > However, are you not changing the defaults here? In that > > > case someone else relying on 4.1 might have a problem I guess. > > > > That's just restoring the behavior we had before > > 12a590f8d556c00a9502eeebaa763d906222d521, and will still result in 4.1 > > being turned on if the kernel is recent enough. > > What is an recent enough kernel? Does not 3.10.24 patched with the patch I > mentioned > earlier? I thought it would make 3.10 look like a 3.11 which have 4.2 > supported. > If I am mistaken we good I guess. Sorry, I don't understand exactly what your concern is. --b. ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH] nfsd: fix minorversion-choosing interface 2013-12-16 22:24 ` Joakim Tjernlund 2013-12-17 3:38 ` J. Bruce Fields @ 2013-12-17 3:43 ` J. Bruce Fields 2014-01-07 21:02 ` Steve Dickson 1 sibling, 1 reply; 14+ messages in thread From: J. Bruce Fields @ 2013-12-17 3:43 UTC (permalink / raw) To: steved; +Cc: Joakim Tjernlund, linux-nfs From: "J. Bruce Fields" <bfields@redhat.com> By unconditionally adding +/-4.2 to the version string written to the kernel we make nfs-utils incompatible with pre-4.2-supporting kernels. Ditto for 4.1. This problem was introduced by 12a590f8d556c00a9502eeebaa763d906222d521 "rpc.nfsd: Allow v4.2 server support with the -V option", which also change nfsd to unconditionally pass +/-4.2. Instead, just don't mention 4.1 or 4.2 unless the commandline has specifically requested that one or the other be turned on or off. Tested-by: Joakim Tjernlund <joakim.tjernlund@transmode.se> Reported-by: Joakim Tjernlund <joakim.tjernlund@transmode.se> Signed-off-by: J. Bruce Fields <bfields@redhat.com> --- support/include/nfs/nfs.h | 1 - utils/nfsd/nfsd.c | 6 +++--- utils/nfsd/nfssvc.c | 6 +++--- utils/nfsd/nfssvc.h | 2 +- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/support/include/nfs/nfs.h b/support/include/nfs/nfs.h index 38db5b5..df4ad76 100644 --- a/support/include/nfs/nfs.h +++ b/support/include/nfs/nfs.h @@ -17,7 +17,6 @@ #define NFS4_MINMINOR 1 #define NFS4_MAXMINOR 2 -#define NFS4_VERDEFAULT 0x1 /* minor verion 1 */ struct nfs_fh_len { int fh_size; diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c index 6db92f0..a9d77ab 100644 --- a/utils/nfsd/nfsd.c +++ b/utils/nfsd/nfsd.c @@ -99,7 +99,7 @@ main(int argc, char **argv) char *p, *progname, *port; char *haddr = NULL; int socket_up = 0; - int minorvers = NFS4_VERDEFAULT; /* nfsv4 minor version */ + int minorvers[NFS4_MAXMINOR + 1] = {0}; unsigned int versbits = NFSCTL_VERDEFAULT; unsigned int protobits = NFSCTL_ALLBITS; unsigned int proto4 = 0; @@ -164,7 +164,7 @@ main(int argc, char **argv) fprintf(stderr, "%s: unsupported minor version\n", optarg); exit(1); } - NFSCTL_VERUNSET(minorvers, i); + minorvers[i] = -1; break; } case 3: @@ -185,7 +185,7 @@ main(int argc, char **argv) fprintf(stderr, "%s: unsupported minor version\n", optarg); exit(1); } - NFSCTL_VERSET(minorvers, i); + minorvers[i] = 1; break; } case 3: diff --git a/utils/nfsd/nfssvc.c b/utils/nfsd/nfssvc.c index 8b85846..1b50aba 100644 --- a/utils/nfsd/nfssvc.c +++ b/utils/nfsd/nfssvc.c @@ -269,7 +269,7 @@ nfssvc_set_sockets(const int family, const unsigned int protobits, } void -nfssvc_setvers(unsigned int ctlbits, int minorvers) +nfssvc_setvers(unsigned int ctlbits, int minorvers[]) { int fd, n, off; char *ptr; @@ -281,9 +281,9 @@ nfssvc_setvers(unsigned int ctlbits, int minorvers) return; for (n = NFS4_MINMINOR; n <= NFS4_MAXMINOR; n++) { - if (NFSCTL_VERISSET(minorvers, n)) + if (minorvers[n] == 1) off += snprintf(ptr+off, sizeof(buf) - off, "+4.%d ", n); - else + else if (minorvers[n] == -1) off += snprintf(ptr+off, sizeof(buf) - off, "-4.%d ", n); } for (n = NFSD_MINVERS; n <= NFSD_MAXVERS; n++) { diff --git a/utils/nfsd/nfssvc.h b/utils/nfsd/nfssvc.h index 08de0fe..2bbd3d3 100644 --- a/utils/nfsd/nfssvc.h +++ b/utils/nfsd/nfssvc.h @@ -24,5 +24,5 @@ void nfssvc_mount_nfsdfs(char *progname); int nfssvc_inuse(void); int nfssvc_set_sockets(const int family, const unsigned int protobits, const char *host, const char *port); -void nfssvc_setvers(unsigned int ctlbits, int minorvers4); +void nfssvc_setvers(unsigned int ctlbits, int minorvers4[]); int nfssvc_threads(unsigned short port, int nrservs); -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH] nfsd: fix minorversion-choosing interface 2013-12-17 3:43 ` [PATCH] nfsd: fix minorversion-choosing interface J. Bruce Fields @ 2014-01-07 21:02 ` Steve Dickson 2014-01-07 22:23 ` Joakim Tjernlund 0 siblings, 1 reply; 14+ messages in thread From: Steve Dickson @ 2014-01-07 21:02 UTC (permalink / raw) To: J. Bruce Fields; +Cc: Joakim Tjernlund, linux-nfs On 16/12/13 22:43, J. Bruce Fields wrote: > From: "J. Bruce Fields" <bfields@redhat.com> > > By unconditionally adding +/-4.2 to the version string written to the > kernel we make nfs-utils incompatible with pre-4.2-supporting kernels. > > Ditto for 4.1. This problem was introduced by > 12a590f8d556c00a9502eeebaa763d906222d521 "rpc.nfsd: Allow v4.2 server > support with the -V option", which also change nfsd to unconditionally > pass +/-4.2. > > Instead, just don't mention 4.1 or 4.2 unless the commandline has > specifically requested that one or the other be turned on or off. > > Tested-by: Joakim Tjernlund <joakim.tjernlund@transmode.se> > Reported-by: Joakim Tjernlund <joakim.tjernlund@transmode.se> > Signed-off-by: J. Bruce Fields <bfields@redhat.com> Committed... steved > --- > support/include/nfs/nfs.h | 1 - > utils/nfsd/nfsd.c | 6 +++--- > utils/nfsd/nfssvc.c | 6 +++--- > utils/nfsd/nfssvc.h | 2 +- > 4 files changed, 7 insertions(+), 8 deletions(-) > > diff --git a/support/include/nfs/nfs.h b/support/include/nfs/nfs.h > index 38db5b5..df4ad76 100644 > --- a/support/include/nfs/nfs.h > +++ b/support/include/nfs/nfs.h > @@ -17,7 +17,6 @@ > > #define NFS4_MINMINOR 1 > #define NFS4_MAXMINOR 2 > -#define NFS4_VERDEFAULT 0x1 /* minor verion 1 */ > > struct nfs_fh_len { > int fh_size; > diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c > index 6db92f0..a9d77ab 100644 > --- a/utils/nfsd/nfsd.c > +++ b/utils/nfsd/nfsd.c > @@ -99,7 +99,7 @@ main(int argc, char **argv) > char *p, *progname, *port; > char *haddr = NULL; > int socket_up = 0; > - int minorvers = NFS4_VERDEFAULT; /* nfsv4 minor version */ > + int minorvers[NFS4_MAXMINOR + 1] = {0}; > unsigned int versbits = NFSCTL_VERDEFAULT; > unsigned int protobits = NFSCTL_ALLBITS; > unsigned int proto4 = 0; > @@ -164,7 +164,7 @@ main(int argc, char **argv) > fprintf(stderr, "%s: unsupported minor version\n", optarg); > exit(1); > } > - NFSCTL_VERUNSET(minorvers, i); > + minorvers[i] = -1; > break; > } > case 3: > @@ -185,7 +185,7 @@ main(int argc, char **argv) > fprintf(stderr, "%s: unsupported minor version\n", optarg); > exit(1); > } > - NFSCTL_VERSET(minorvers, i); > + minorvers[i] = 1; > break; > } > case 3: > diff --git a/utils/nfsd/nfssvc.c b/utils/nfsd/nfssvc.c > index 8b85846..1b50aba 100644 > --- a/utils/nfsd/nfssvc.c > +++ b/utils/nfsd/nfssvc.c > @@ -269,7 +269,7 @@ nfssvc_set_sockets(const int family, const unsigned int protobits, > } > > void > -nfssvc_setvers(unsigned int ctlbits, int minorvers) > +nfssvc_setvers(unsigned int ctlbits, int minorvers[]) > { > int fd, n, off; > char *ptr; > @@ -281,9 +281,9 @@ nfssvc_setvers(unsigned int ctlbits, int minorvers) > return; > > for (n = NFS4_MINMINOR; n <= NFS4_MAXMINOR; n++) { > - if (NFSCTL_VERISSET(minorvers, n)) > + if (minorvers[n] == 1) > off += snprintf(ptr+off, sizeof(buf) - off, "+4.%d ", n); > - else > + else if (minorvers[n] == -1) > off += snprintf(ptr+off, sizeof(buf) - off, "-4.%d ", n); > } > for (n = NFSD_MINVERS; n <= NFSD_MAXVERS; n++) { > diff --git a/utils/nfsd/nfssvc.h b/utils/nfsd/nfssvc.h > index 08de0fe..2bbd3d3 100644 > --- a/utils/nfsd/nfssvc.h > +++ b/utils/nfsd/nfssvc.h > @@ -24,5 +24,5 @@ void nfssvc_mount_nfsdfs(char *progname); > int nfssvc_inuse(void); > int nfssvc_set_sockets(const int family, const unsigned int protobits, > const char *host, const char *port); > -void nfssvc_setvers(unsigned int ctlbits, int minorvers4); > +void nfssvc_setvers(unsigned int ctlbits, int minorvers4[]); > int nfssvc_threads(unsigned short port, int nrservs); > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] nfsd: fix minorversion-choosing interface 2014-01-07 21:02 ` Steve Dickson @ 2014-01-07 22:23 ` Joakim Tjernlund 2014-01-09 16:06 ` Steve Dickson 0 siblings, 1 reply; 14+ messages in thread From: Joakim Tjernlund @ 2014-01-07 22:23 UTC (permalink / raw) To: Steve Dickson; +Cc: J. Bruce Fields, linux-nfs Steve Dickson <SteveD@redhat.com> wrote on 2014/01/07 22:02:01: > > > On 16/12/13 22:43, J. Bruce Fields wrote: > > From: "J. Bruce Fields" <bfields@redhat.com> > > > > By unconditionally adding +/-4.2 to the version string written to the > > kernel we make nfs-utils incompatible with pre-4.2-supporting kernels. > > > > Ditto for 4.1. This problem was introduced by > > 12a590f8d556c00a9502eeebaa763d906222d521 "rpc.nfsd: Allow v4.2 server > > support with the -V option", which also change nfsd to unconditionally > > pass +/-4.2. > > > > Instead, just don't mention 4.1 or 4.2 unless the commandline has > > specifically requested that one or the other be turned on or off. > > > > Tested-by: Joakim Tjernlund <joakim.tjernlund@transmode.se> > > Reported-by: Joakim Tjernlund <joakim.tjernlund@transmode.se> > > Signed-off-by: J. Bruce Fields <bfields@redhat.com> > Committed... > > steved Thanks, do plan on making a release soon? Jocke ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] nfsd: fix minorversion-choosing interface 2014-01-07 22:23 ` Joakim Tjernlund @ 2014-01-09 16:06 ` Steve Dickson 2014-01-09 16:26 ` Joakim Tjernlund 0 siblings, 1 reply; 14+ messages in thread From: Steve Dickson @ 2014-01-09 16:06 UTC (permalink / raw) To: Joakim Tjernlund; +Cc: J. Bruce Fields, linux-nfs On 07/01/14 17:23, Joakim Tjernlund wrote: > Steve Dickson <SteveD@redhat.com> wrote on 2014/01/07 22:02:01: >> >> >> On 16/12/13 22:43, J. Bruce Fields wrote: >>> From: "J. Bruce Fields" <bfields@redhat.com> >>> >>> By unconditionally adding +/-4.2 to the version string written to the >>> kernel we make nfs-utils incompatible with pre-4.2-supporting kernels. >>> >>> Ditto for 4.1. This problem was introduced by >>> 12a590f8d556c00a9502eeebaa763d906222d521 "rpc.nfsd: Allow v4.2 server >>> support with the -V option", which also change nfsd to unconditionally >>> pass +/-4.2. >>> >>> Instead, just don't mention 4.1 or 4.2 unless the commandline has >>> specifically requested that one or the other be turned on or off. >>> >>> Tested-by: Joakim Tjernlund <joakim.tjernlund@transmode.se> >>> Reported-by: Joakim Tjernlund <joakim.tjernlund@transmode.se> >>> Signed-off-by: J. Bruce Fields <bfields@redhat.com> >> Committed... >> >> steved > > Thanks, do plan on making a release soon? Sorry for the delayed response... Its in my git tree and in Fedora 20 nfs-utils.... Is this what you were looking for? steved. > > Jocke > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] nfsd: fix minorversion-choosing interface 2014-01-09 16:06 ` Steve Dickson @ 2014-01-09 16:26 ` Joakim Tjernlund 0 siblings, 0 replies; 14+ messages in thread From: Joakim Tjernlund @ 2014-01-09 16:26 UTC (permalink / raw) To: Steve Dickson; +Cc: J. Bruce Fields, linux-nfs Steve Dickson <SteveD@redhat.com> wrote on 2014/01/09 17:06:41: > > > On 07/01/14 17:23, Joakim Tjernlund wrote: > > Steve Dickson <SteveD@redhat.com> wrote on 2014/01/07 22:02:01: > >> > >> > >> On 16/12/13 22:43, J. Bruce Fields wrote: > >>> From: "J. Bruce Fields" <bfields@redhat.com> > >>> > >>> By unconditionally adding +/-4.2 to the version string written to the > >>> kernel we make nfs-utils incompatible with pre-4.2-supporting kernels. > >>> > >>> Ditto for 4.1. This problem was introduced by > >>> 12a590f8d556c00a9502eeebaa763d906222d521 "rpc.nfsd: Allow v4.2 server > >>> support with the -V option", which also change nfsd to unconditionally > >>> pass +/-4.2. > >>> > >>> Instead, just don't mention 4.1 or 4.2 unless the commandline has > >>> specifically requested that one or the other be turned on or off. > >>> > >>> Tested-by: Joakim Tjernlund <joakim.tjernlund@transmode.se> > >>> Reported-by: Joakim Tjernlund <joakim.tjernlund@transmode.se> > >>> Signed-off-by: J. Bruce Fields <bfields@redhat.com> > >> Committed... > >> > >> steved > > > > Thanks, do plan on making a release soon? > Sorry for the delayed response... > > Its in my git tree and in Fedora 20 nfs-utils.... > > Is this what you were looking for? No, I am wondering when nfs-utils 1.2.10 will be released, but I see now that the tree is tagged with 1-2-10-rc2 so I guess it will be soon. Jocke ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2014-01-09 16:26 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-12-16 18:16 nfs-utils-1.2.9 does not play well with linux 3.10.x Joakim Tjernlund 2013-12-16 18:54 ` J. Bruce Fields 2013-12-16 20:03 ` J. Bruce Fields 2013-12-16 20:21 ` Joakim Tjernlund 2013-12-16 20:23 ` J. Bruce Fields 2013-12-16 22:24 ` Joakim Tjernlund 2013-12-17 3:38 ` J. Bruce Fields 2013-12-17 6:30 ` Joakim Tjernlund 2013-12-17 15:24 ` J. Bruce Fields 2013-12-17 3:43 ` [PATCH] nfsd: fix minorversion-choosing interface J. Bruce Fields 2014-01-07 21:02 ` Steve Dickson 2014-01-07 22:23 ` Joakim Tjernlund 2014-01-09 16:06 ` Steve Dickson 2014-01-09 16:26 ` Joakim Tjernlund
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).