deleg: delegation support for name/attr cache
when a delegation is granted by OPEN, its delegation type is passed to nfs41_name_cache_insert(). as long as the delegation is held, its name_cache_entry is kept out of the cache.exp_entries list to prevent it from expiring. an extra reference is held on the attr_cache_entry as well, so it sticks around even if the name_cache_entry is removed (a parent expires, for example). new function nfs41_name_cache_delegreturn() adds the name_cache_entry back to the list, and releases the extra attr_cache_entry reference Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
This commit is contained in:
parent
ee71a62af2
commit
38259e0017
4 changed files with 124 additions and 32 deletions
|
|
@ -75,7 +75,14 @@ int nfs41_name_cache_insert(
|
|||
IN const nfs41_component *name,
|
||||
IN OPTIONAL const nfs41_fh *fh,
|
||||
IN OPTIONAL const nfs41_file_info *info,
|
||||
IN OPTIONAL const change_info4 *cinfo);
|
||||
IN OPTIONAL const change_info4 *cinfo,
|
||||
IN enum open_delegation_type4 delegation);
|
||||
|
||||
int nfs41_name_cache_delegreturn(
|
||||
IN struct nfs41_name_cache *cache,
|
||||
IN uint64_t fileid,
|
||||
IN const char *path,
|
||||
IN const nfs41_component *name);
|
||||
|
||||
int nfs41_name_cache_remove(
|
||||
IN struct nfs41_name_cache *cache,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue