ms-nfs41-client/daemon
Casey Bodley 8e310c5711 recovery: handle delegation.recalled on reclaim
while the server is required to grant us delegations we reclaim through CLAIM_PREVIOUS, it may set the flag recalled=TRUE if it's not ready to grant the delegation.  the client is then responsible for flushing modified state to the server and returning the delegation

new function nfs41_client_delegation_recovery() cleans up after delegation recovery by a) returning any delegations flagged as recalled, and b) 'forgetting' any delegations that we failed to reclaim.  this function is called under the client's state recovery lock, directly after open and delegation state is recovered

added 'try_recovery' argument to delegation_return(), allowing it to be called during client state recovery.  split out the code that removes the delegation from the client and its opens into delegation_remove(), which is what nfs41_client_delegation_recovery() uses to 'forget' a delegation

Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
2011-08-05 14:32:20 -04:00
..
acl.c query owner and group attr only on specific getattrs 2011-07-18 15:24:25 -04:00
callback_server.c deleg: return delegation on CB_RECALL 2011-07-18 15:24:22 -04:00
callback_xdr.c pnfs: xdr for CB_NOTIFY_DEVICEID 2011-07-01 11:33:52 -04:00
daemon_debug.c [cosmetic] fixing line-endings in rpc_error_string 2011-06-02 13:20:52 -04:00
daemon_debug.h [cosmetic] adding gssauth_string for debug 2011-05-19 12:02:06 -04:00
delegation.c recovery: handle delegation.recalled on reclaim 2011-08-05 14:32:20 -04:00
delegation.h recovery: handle delegation.recalled on reclaim 2011-08-05 14:32:20 -04:00
from_kernel.h adding query for FileInternalInformation infoclass 2011-04-12 14:06:13 -04:00
getattr.c moving session and open_state in upcall header 2011-04-13 20:07:37 -04:00
idmap.c adding --noldap startup option 2010-12-02 17:43:12 -05:00
idmap.h idmap.c for ldap caching and configuration 2010-11-08 12:54:40 -05:00
list.h fresh git tree for public release 2010-10-12 10:15:48 -04:00
lock.c recovery: recover from delegation stateid errors 2011-08-05 14:32:20 -04:00
lookup.c query owner and group attr only on specific getattrs 2011-07-18 15:24:25 -04:00
makefile fresh git tree for public release 2010-10-12 10:15:48 -04:00
mount.c dont dereference root if mount fails 2011-06-29 18:29:21 -04:00
name_cache.c deleg: delegation support for name/attr cache 2011-07-18 15:24:23 -04:00
name_cache.h deleg: delegation support for name/attr cache 2011-07-18 15:24:23 -04:00
namespace.c memory leak in nfs41_root_create 2010-12-02 14:22:06 -05:00
nfs41.h recovery: reboot recovery of delegation stateids 2011-08-05 14:32:19 -04:00
nfs41_callback.h pnfs: xdr for CB_NOTIFY_DEVICEID 2011-07-01 11:33:52 -04:00
nfs41_client.c deleg: use delegations to satisfy opens locally 2011-07-18 15:24:21 -04:00
nfs41_compound.c cosmetic: recovery.c for client state recovery 2011-08-05 14:32:17 -04:00
nfs41_compound.h recovery: avoid recursive state recovery 2010-12-06 14:29:01 -05:00
nfs41_const.h asking for persistent session from a server 2011-05-23 16:35:38 -04:00
nfs41_daemon.c daemon: cleaned up compiler warnings 2011-07-18 15:24:20 -04:00
nfs41_ops.c recovery: recover from delegation stateid errors 2011-08-05 14:32:20 -04:00
nfs41_ops.h recovery: recover from delegation stateid errors 2011-08-05 14:32:20 -04:00
nfs41_rpc.c handling rpc_autherr 2011-06-20 12:15:25 -04:00
nfs41_server.c propagate errors from nfs41_name_cache_create() 2011-01-10 15:16:17 -05:00
nfs41_session.c callback: clear replay cache on session recovery 2011-07-18 10:52:39 -04:00
nfs41_superblock.c deleg: use SETATTR for OPEN4_CREATE 2011-07-18 15:24:24 -04:00
nfs41_types.h query owner and group attr only on specific getattrs 2011-07-18 15:24:25 -04:00
nfs41_xdr.c recovery: handle delegation.recalled on reclaim 2011-08-05 14:32:20 -04:00
nfs41_xdr.h xdr encode decode acl and dacl attributes 2011-04-12 14:07:24 -04:00
open.c recovery: recover from delegation stateid errors 2011-08-05 14:32:20 -04:00
pnfs.h pnfs: xdr for CB_NOTIFY_DEVICEID 2011-07-01 11:33:52 -04:00
pnfs_debug.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
pnfs_device.c pnfs: xdr for CB_NOTIFY_DEVICEID 2011-07-01 11:33:52 -04:00
pnfs_io.c pnfs: readwrite uses pnfs_layout_state 2011-03-22 14:49:24 -04:00
pnfs_layout.c deleg: make use of delegation stateids 2011-07-18 15:24:22 -04:00
readdir.c daemon: cleaned up compiler warnings 2011-07-18 15:24:20 -04:00
readwrite.c deleg: make use of delegation stateids 2011-07-18 15:24:22 -04:00
recovery.c recovery: handle delegation.recalled on reclaim 2011-08-05 14:32:20 -04:00
recovery.h cosmetic: recovery.c for client state recovery 2011-08-05 14:32:17 -04:00
service.c warnings from WDK 6000 2010-10-19 11:17:29 -04:00
service.h first stab at nfsd as a service 2010-10-12 10:36:03 -04:00
setattr.c deleg: use SETATTR for OPEN4_CREATE 2011-07-18 15:24:24 -04:00
sources idmap.c for ldap caching and configuration 2010-11-08 12:54:40 -05:00
symlink.c moving session and open_state in upcall header 2011-04-13 20:07:37 -04:00
tree.h replace rbtree implementation with tree.h from freebsd 2010-12-01 10:25:29 -05:00
upcall.c dont call upcall_cleanup if versions were mismatched 2011-04-27 16:47:40 -04:00
upcall.h deny setattr for size if not opened for write 2011-06-27 14:51:15 -04:00
util.c deny setattr for size if not opened for write 2011-06-27 14:51:15 -04:00
util.h deny setattr for size if not opened for write 2011-06-27 14:51:15 -04:00
volume.c cache volume attrs with superblock 2011-06-20 10:49:53 -04:00