Implement slot cache for export_mgr.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Update CIH slot cache only on AVL hits.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Un-asynchronize FSAL_UP

Get rid of the FSAL upcall thread and make all functions synchronous.
This seems to work much better for the cases for which we are using
FSAL_UP, and not splitting the functions into two halves removes race
conditions.

This does mean that no FSAL_UP method may be called from an FSAL
method.  If you need to do so, then employ something like the delayed
executor or a thread fridge.  (Or pass a message to your FSAL's own
listener thread.)

To reiterate, if you call layoutrecall from your layoutget method,
really, really horrible things will happen.

Signed-off-by: Adam C. Emerson <aemerson@linuxbox.com>
Tweak initiate_recall to return false on recall error

This gives us an easier way to return the cap without risking deadlock.

Signed-off-by: Adam C. Emerson <aemerson@linuxbox.com>
Let FSAL be picky about clients in layoutrecall

Add support to recall one client's layouts or all but one client's
layouts.

Signed-off-by: Adam C. Emerson <aemerson@linuxbox.com>
Fix potential deadlock between CB_LAYOUTRECALL and LAYOUTCOMMIT

Signed-off-by: Adam C. Emerson <aemerson@linuxbox.com>
Fix error return behavior

* Don't call into FSAL's layoutreturn function if called by its layoutrecall trigger
* Pass the clientid in on revocation returns
* Only set the initial call time on the initial call (Oops.)

Signed-off-by: Adam C. Emerson <aemerson@linuxbox.com>
Changes to 15to20-porting.txt to reflect this push.

Signed-off-by: Venkateswararao Jujjuri "<jvrao@linux.vnet.ibm.com>
Merge remote-tracking branch 'linuxbox2/next' into merge_next

dev_27 merge

Signed-off-by: Jim Lieb <jlieb@panasas.com>
Merge remote-tracking branch 'linuxbox2/fsal_up_remove_badness' into merge_next

Signed-off-by: Sachin Bhamare <sbhamare@panasas.com>
Signed-off-by: Jim Lieb <jlieb@panasas.com>
Merge remote-tracking branch 'jv_github/jv_dev_26_merge' into merge_next

Had to strip out old code zapped by fe2dddf8285a21b that didn't
merge propely.

Conflicts:
	src/Cache_inode/cache_inode_rdwr.c

Signed-off-by: Jim Lieb <jlieb@panasas.com>
Added fsal_obj_handle_uninit(), code dedup

Signed-off-by: Amit Dror <amitd@infinidat.com>
(cherry picked from commit 3f7814461817a714f5de52f4ee46802173dea651)

Signed-off-by: Jim Lieb <jlieb@panasas.com>
Fix LRU reclaim fault.

The root cause of the fault was improper decrement of the
entry refcnt to 0 in lru_reap_impl.

Found by Dominique Martinet <dominique.martinet@cea.fr>.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Fix merge litter and typo induced compile errors

Signed-off-by: Jim Lieb <jlieb@panasas.com>
Fix LRU reclaim fault.

The root cause of the fault was improper decrement of the
entry refcnt to 0 in lru_reap_impl.

Found by Dominique Martinet <dominique.martinet@cea.fr>.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
(cherry picked from commit 31d7c03ad2a069793dc782280853bc5156739e6f)

Signed-off-by: Jim Lieb <jlieb@panasas.com>
But return entry ref if we -dont- reclaim.

Use cache_inode_lru_unref to release.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Replace unchecked decref with cache_inode_lru_unref (2).

The former may be used only if it is assured that the entry
refcnt could not reach 0.  Thus unchecked decref appears safe in
dec_pin_ref, but not elsewhere.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Declare alloc_cache_entry static.

An entry may not be created in any other unit.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Merge remote-tracking branch 'linuxbox2/next-lru' into merge_next

Fix for LRU fault going back to dev_25 or earlier
unmount and unregister v3 on startup based on config params

Currently, v2 to v4 ports are being unregistered and unmounted
when Ganesha is configured in "nfsv4 only" mode. So add a check for
Ganesha config params to only unregister all ports when Ganesha
is accepting v3 requests; otherwise unregister v4 port only.

Signed-off-by: Viji Ganapathi <vganapathi@panasas.com>
(cherry picked from commit 74b470d1fb25f86000e1f7913da170307af9d371)

Signed-off-by: Jim Lieb <jlieb@panasas.com>