mirror of
https://github.com/opnsense/src.git
synced 2026-06-11 01:30:30 -04:00
Fix kernel handling of a NFSERR_MINORVERSMISMATCH NFSv4 server reply.
When an NFSv4 server replies NFSERR_MINORVERSMISMATCH, it does not generate a status result for the first operation in the compound. Without this patch, this will result in a bogus EBADXDR error return. Returning EBADXDR is relatively harmless, but a correct reply of NFSERR_MINORVERSMISMATCH is needed by the pNFS client to select the correct minor version to use for a File Layout DS now that there can be NFSv4.2 DS servers. mount_nfs.c still needs to be fixed for this, although how the mount fails is only useful to help sysadmins isolate why a mount fails. Found during testing of the NFSv4.2 client and server. MFC after: 2 weeks
This commit is contained in:
parent
c0829bb1d6
commit
8e1906f700
1 changed files with 2 additions and 1 deletions
|
|
@ -918,7 +918,8 @@ tryagain:
|
|||
* Get rid of the tag, return count and SEQUENCE result for
|
||||
* NFSv4.
|
||||
*/
|
||||
if ((nd->nd_flag & ND_NFSV4) != 0) {
|
||||
if ((nd->nd_flag & ND_NFSV4) != 0 && nd->nd_repstat !=
|
||||
NFSERR_MINORVERMISMATCH) {
|
||||
NFSM_DISSECT(tl, u_int32_t *, NFSX_UNSIGNED);
|
||||
i = fxdr_unsigned(int, *tl);
|
||||
error = nfsm_advance(nd, NFSM_RNDUP(i), -1);
|
||||
|
|
|
|||
Loading…
Reference in a new issue