diff options
Diffstat (limited to 'fs/nfsd/nfssvc.c')
-rw-r--r-- | fs/nfsd/nfssvc.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/fs/nfsd/nfssvc.c b/fs/nfsd/nfssvc.c index 262df5ccbf59..760c85a6f534 100644 --- a/fs/nfsd/nfssvc.c +++ b/fs/nfsd/nfssvc.c | |||
@@ -116,7 +116,10 @@ struct svc_program nfsd_program = { | |||
116 | 116 | ||
117 | }; | 117 | }; |
118 | 118 | ||
119 | u32 nfsd_supported_minorversion; | 119 | static bool nfsd_supported_minorversions[NFSD_SUPPORTED_MINOR_VERSION + 1] = { |
120 | [0] = 1, | ||
121 | [1] = 1, | ||
122 | }; | ||
120 | 123 | ||
121 | int nfsd_vers(int vers, enum vers_op change) | 124 | int nfsd_vers(int vers, enum vers_op change) |
122 | { | 125 | { |
@@ -151,15 +154,13 @@ int nfsd_minorversion(u32 minorversion, enum vers_op change) | |||
151 | return -1; | 154 | return -1; |
152 | switch(change) { | 155 | switch(change) { |
153 | case NFSD_SET: | 156 | case NFSD_SET: |
154 | nfsd_supported_minorversion = minorversion; | 157 | nfsd_supported_minorversions[minorversion] = true; |
155 | break; | 158 | break; |
156 | case NFSD_CLEAR: | 159 | case NFSD_CLEAR: |
157 | if (minorversion == 0) | 160 | nfsd_supported_minorversions[minorversion] = false; |
158 | return -1; | ||
159 | nfsd_supported_minorversion = minorversion - 1; | ||
160 | break; | 161 | break; |
161 | case NFSD_TEST: | 162 | case NFSD_TEST: |
162 | return minorversion <= nfsd_supported_minorversion; | 163 | return nfsd_supported_minorversions[minorversion]; |
163 | case NFSD_AVAIL: | 164 | case NFSD_AVAIL: |
164 | return minorversion <= NFSD_SUPPORTED_MINOR_VERSION; | 165 | return minorversion <= NFSD_SUPPORTED_MINOR_VERSION; |
165 | } | 166 | } |