DELEGRETURN does not have an open/lock owner, don't call Copy_nfs4_state_req

Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
Hold state_lock in write for nfs4_return_one_state and state_lookup_layout_state

nfs4_return_one_state does a glist_length which requires the state lock,
since most callers hold the lock, change so all callers hold the lock.

Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
Add refcount to state_t

Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
Eliminate separate deleg_data structue

Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
Simplify delegrecall_context and delegrecall_one

Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
Free state_layout_recall_file list resources

Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
MORE Add refcount to state_t

Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
Fix a few places where an extra cache inode LRU reference was taken

cache_inode_create, cache_inode_lookup, and cache_inode_lookupp both return a
reference to the resulting entry, and that reference can be handed off to
data->current_entry.

Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
Use cache_inode_get_lru_ref_pinned to correctly get LRU reference

Given an object with a cache entry pointer, we can not just simply get
an LRU reference, we must use cache_inode_get_lru_ref_pinned to assure
the entry is not dead before taking a reference.

In most cases, if the entry is dead, we continue to loop looking for
objects and their associated entries, assuming that eventually the
objects for the dead entry will be removed.

Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
Attach state_t to export uniformly inside state_add_impl

Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
MORE Add refcount to state_t

Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
TEMP

Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>