Browse Source

NFSD: don't report compiled-out versions as present

The /proc/fs/nfsd/versions file calls nfsd_vers() to check whether
the particular nfsd version is present/available. The problem is
that once I turn off e.g. NFSD-V4 this call returns -1 which is
true from the callers POV which is wrong.

The proposal is to report false in that case.

The bug has existed since 6658d3a7bbfd1768 "[PATCH] knfsd: remove
nfsd_versbits as intermediate storage for desired versions".

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Cc: stable@kernel.org
Acked-by: NeilBrown <neilb@suse.de>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Pavel Emelyanov 15 năm trước cách đây
mục cha
commit
15ddb4aec5
1 tập tin đã thay đổi với 1 bổ sung1 xóa
  1. 1 1
      fs/nfsd/nfssvc.c

+ 1 - 1
fs/nfsd/nfssvc.c

@@ -120,7 +120,7 @@ u32 nfsd_supported_minorversion;
 int nfsd_vers(int vers, enum vers_op change)
 int nfsd_vers(int vers, enum vers_op change)
 {
 {
 	if (vers < NFSD_MINVERS || vers >= NFSD_NRVERS)
 	if (vers < NFSD_MINVERS || vers >= NFSD_NRVERS)
-		return -1;
+		return 0;
 	switch(change) {
 	switch(change) {
 	case NFSD_SET:
 	case NFSD_SET:
 		nfsd_versions[vers] = nfsd_version[vers];
 		nfsd_versions[vers] = nfsd_version[vers];