]> git.karo-electronics.de Git - mv-sheeva.git/commit
nfsd41: replace page based DRC with buffer based DRC
authorAndy Adamson <andros@netapp.com>
Fri, 28 Aug 2009 12:45:04 +0000 (08:45 -0400)
committerJ. Bruce Fields <bfields@citi.umich.edu>
Wed, 2 Sep 2009 02:24:06 +0000 (22:24 -0400)
commit557ce2646e775f6bda734dd92b10d4780874b9c7
treea44a5e2f9d601a039f7ac9b30b5c4af95796fc23
parentbdac86e2154cfe47552639113265d1fa27cfbe72
nfsd41: replace page based DRC with buffer based DRC

Use NFSD_SLOT_CACHE_SIZE size buffers for sessions DRC instead of holding nfsd
pages in cache.

Connectathon testing has shown that 1024 bytes for encoded compound operation
responses past the sequence operation is sufficient, 512 bytes is a little too
small. Set NFSD_SLOT_CACHE_SIZE to 1024.

Allocate memory for the session DRC in the CREATE_SESSION operation
to guarantee that the memory resource is available for caching responses.
Allocate each slot individually in preparation for slot table size negotiation.

Remove struct nfsd4_cache_entry and helper functions for the old page-based
DRC.

The iov_len calculation in nfs4svc_encode_compoundres is now always
correct.  Replay is now done in nfsd4_sequence under the state lock, so
the session ref count is only bumped on non-replay. Clean up the
nfs4svc_encode_compoundres session logic.

The nfsd4_compound_state statp pointer is also not used.
Remove nfsd4_set_statp().

Move useful nfsd4_cache_entry fields into nfsd4_slot.

Signed-off-by: Andy Adamson <andros@netapp.com
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
fs/nfsd/nfs4state.c
fs/nfsd/nfs4xdr.c
fs/nfsd/nfssvc.c
include/linux/nfsd/state.h
include/linux/nfsd/xdr4.h