deleg: return delegation on attr cache failure

on opens that grant a delegation, return the delegation immediately if attribute cache insertion fails

nfs41_name_cache_insert() now returns success in the 'out_err_deleg' case, where name cache insertion failed but attr cache insertion was successful

Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
This commit is contained in:
Casey Bodley 2011-08-17 12:11:02 -04:00 committed by unknown
parent edd8f67873
commit a0d4403a99
2 changed files with 34 additions and 4 deletions

View file

@ -909,8 +909,9 @@ out_err_deleg:
if (delegation == OPEN_DELEGATE_READ || delegation == OPEN_DELEGATE_WRITE) {
/* we still need a reference to the attributes for the delegation */
struct attr_cache_entry *attributes;
if (attr_cache_find_or_create(&cache->attributes,
info->fileid, &attributes) == NO_ERROR)
status = attr_cache_find_or_create(&cache->attributes,
info->fileid, &attributes);
if (status == NO_ERROR)
attr_cache_update(attributes, info, delegation);
}
goto out_unlock;