nfsd: turn on reply cache for NFSv4
It's sort of ridiculous that we've never had a working reply cache for NFSv4. On the other hand, we may still not: our current reply cache is likely not very good, especially in the TCP case (which is the only case that matters for v4). What we really need here is some serious testing. Anyway, here's a start. Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
@@ -52,6 +52,7 @@
|
||||
#include "xdr4.h"
|
||||
#include "vfs.h"
|
||||
#include "state.h"
|
||||
#include "cache.h"
|
||||
|
||||
#define NFSDDBG_FACILITY NFSDDBG_XDR
|
||||
|
||||
@@ -1466,6 +1467,7 @@ nfsd4_decode_compound(struct nfsd4_compoundargs *argp)
|
||||
DECODE_HEAD;
|
||||
struct nfsd4_op *op;
|
||||
struct nfsd4_minorversion_ops *ops;
|
||||
bool cachethis = false;
|
||||
int i;
|
||||
|
||||
/*
|
||||
@@ -1547,7 +1549,16 @@ nfsd4_decode_compound(struct nfsd4_compoundargs *argp)
|
||||
argp->opcnt = i+1;
|
||||
break;
|
||||
}
|
||||
/*
|
||||
* We'll try to cache the result in the DRC if any one
|
||||
* op in the compound wants to be cached:
|
||||
*/
|
||||
cachethis |= nfsd4_cache_this_op(op);
|
||||
}
|
||||
/* Sessions make the DRC unnecessary: */
|
||||
if (argp->minorversion)
|
||||
cachethis = false;
|
||||
argp->rqstp->rq_cachetype = cachethis ? RC_REPLBUFF : RC_NOCACHE;
|
||||
|
||||
DECODE_TAIL;
|
||||
}
|
||||
|
Viittaa uudesa ongelmassa
Block a user