Commit 8ff30fa4eff2ff9e207961c654caa093f0c84873
Committed by
J. Bruce Fields
1 parent
1ebede86b8
Exists in
master
and in
7 other branches
nfsd: disable deferral for NFSv4
Now that a slight delay in getting a reply to an upcall doesn't require deferring of requests, request deferral for all NFSv4 requests - the concept doesn't really fit with the v4 model. Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Showing 1 changed file with 5 additions and 2 deletions Side-by-side Diff
fs/nfsd/nfs4proc.c
... | ... | @@ -1031,8 +1031,11 @@ |
1031 | 1031 | resp->cstate.session = NULL; |
1032 | 1032 | fh_init(&resp->cstate.current_fh, NFS4_FHSIZE); |
1033 | 1033 | fh_init(&resp->cstate.save_fh, NFS4_FHSIZE); |
1034 | - /* Use the deferral mechanism only for NFSv4.0 compounds */ | |
1035 | - rqstp->rq_usedeferral = (args->minorversion == 0); | |
1034 | + /* | |
1035 | + * Don't use the deferral mechanism for NFSv4; compounds make it | |
1036 | + * too hard to avoid non-idempotency problems. | |
1037 | + */ | |
1038 | + rqstp->rq_usedeferral = 0; | |
1036 | 1039 | |
1037 | 1040 | /* |
1038 | 1041 | * According to RFC3010, this takes precedence over all other errors. |