From: Steve Dickson <SteveD@redhat.com>
To: "J. Bruce Fields" <bfields@fieldses.org>
Cc: Joakim Tjernlund <joakim.tjernlund@transmode.se>,
linux-nfs@vger.kernel.org
Subject: Re: [PATCH] nfsd: fix minorversion-choosing interface
Date: Tue, 07 Jan 2014 16:02:01 -0500 [thread overview]
Message-ID: <52CC6B49.2070801@RedHat.com> (raw)
In-Reply-To: <20131217034331.GB3490@fieldses.org>
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);
>
next prev parent reply other threads:[~2014-01-07 21:21 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
2014-01-07 22:23 ` Joakim Tjernlund
2014-01-09 16:06 ` Steve Dickson
2014-01-09 16:26 ` Joakim Tjernlund
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52CC6B49.2070801@RedHat.com \
--to=steved@redhat.com \
--cc=bfields@fieldses.org \
--cc=joakim.tjernlund@transmode.se \
--cc=linux-nfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.