Commit 8ff30fa4eff2ff9e207961c654caa093f0c84873

Authored by NeilBrown
Committed by J. Bruce Fields
1 parent 1ebede86b8

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

... ... @@ -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.