ms-nfs41-client/daemon
Casey Bodley 81051ddce1 recovery: revoke all layouts and device info on client recovery
12.7.4. Recovery from Metadata Server Restart
"The client MUST stop using layouts and delete the device ID to device address mappings it previously received from the metadata server."

during client state recovery, call pnfs_file_layout_recall() to revoke all layouts and devices held by the client

LAYOUTGET, LAYOUTRETURN, and GETDEVICEINFO are all sent under their respective locks, and pnfs_file_layout_recall() requires a lock on each layout and device it operates on, so this would cause a deadlock if one of those operations triggered the recovery.  to avoid this, LAYOUTGET, LAYOUTRETURN, and GETDEVICEINFO are all sent with try_recovery=FALSE.  this behavior is preferable for recovery, because errors in the pnfs path cause us to fall back to the metadata server

Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
2011-01-04 14:26:28 -05:00
..
callback_server.c pnfs: revoke device info on bulk layout recall 2011-01-04 14:26:26 -05:00
callback_xdr.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
daemon_debug.c adding sec flavor to upcall 2010-12-02 14:22:05 -05:00
daemon_debug.h adding sec flavor to upcall 2010-12-02 14:22:05 -05:00
from_kernel.h volume: daemon handles FileFsAttributeInformation 2010-10-12 10:35:51 -04:00
getattr.c ref counting for nfs41_root 2010-10-27 16:18:23 -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: use normal OPEN/LOCK on ERR_NO_GRACE 2010-12-06 14:29:32 -05:00
lookup.c recovery: avoid recursive state recovery 2010-12-06 14:29:01 -05:00
makefile fresh git tree for public release 2010-10-12 10:15:48 -04:00
mount.c creating nfs client per security flavor 2010-12-02 14:22:05 -05:00
name_cache.c fixing rbtree patch 2010-12-07 16:50:45 -05:00
name_cache.h name cache: insert supports negative entries 2010-10-12 10:35:43 -04:00
namespace.c memory leak in nfs41_root_create 2010-12-02 14:22:06 -05:00
nfs41.h tracking open state in setattr for reboot recovery 2010-12-10 11:25:01 -05:00
nfs41_callback.h fresh git tree for public release 2010-10-12 10:15:48 -04:00
nfs41_client.c recovery updated handling of BADSESSION 2010-12-06 14:28:13 -05:00
nfs41_compound.c recovery: revoke all layouts and device info on client recovery 2011-01-04 14:26:28 -05:00
nfs41_compound.h recovery: avoid recursive state recovery 2010-12-06 14:29:01 -05:00
nfs41_const.h symlink: limit symlink depth to avoid following cyclical links 2010-10-15 17:24:04 -04:00
nfs41_daemon.c fix warnings for parse_cmdlineargs() 2010-12-10 14:51:44 -05:00
nfs41_ops.c recovery: revoke all layouts and device info on client recovery 2011-01-04 14:26:28 -05:00
nfs41_ops.h recovery: use normal OPEN/LOCK on ERR_NO_GRACE 2010-12-06 14:29:32 -05:00
nfs41_rpc.c fix for nfs41_rpc_clnt_create 2010-12-10 12:54:17 -05:00
nfs41_server.c fix for warning C4204: non-constant aggregate initializer 2010-11-08 12:29:47 -05:00
nfs41_session.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
nfs41_superblock.c cosmetic: cleaning up small functions 2010-11-05 15:10:20 -04:00
nfs41_types.h setting SUPPORTS_HARD_LINKS if link_support is enabled 2010-11-04 11:51:26 -04:00
nfs41_xdr.c recovery: operations take stateid_arg instead of stateid4 2010-12-06 14:21:28 -05:00
nfs41_xdr.h fresh git tree for public release 2010-10-12 10:15:48 -04:00
open.c tracking open state in setattr for reboot recovery 2010-12-10 11:25:01 -05:00
pnfs.h pnfs: revoke device info on bulk layout recall 2011-01-04 14:26:26 -05:00
pnfs_debug.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
pnfs_device.c pnfs: revoke device info on bulk layout recall 2011-01-04 14:26:26 -05:00
pnfs_io.c pnfs: revoke device info on bulk layout recall 2011-01-04 14:26:26 -05:00
pnfs_layout.c pnfs: revoke device info on bulk layout recall 2011-01-04 14:26:26 -05:00
readdir.c fix for warning C4204: non-constant aggregate initializer 2010-11-08 12:29:47 -05:00
readwrite.c recovery: operations take stateid_arg instead of stateid4 2010-12-06 14:21:28 -05: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 minor changes 2010-12-10 11:39:28 -05:00
sources idmap.c for ldap caching and configuration 2010-11-08 12:54:40 -05:00
symlink.c ref counting for nfs41_root 2010-10-27 16:18:23 -04:00
tree.h replace rbtree implementation with tree.h from freebsd 2010-12-01 10:25:29 -05:00
upcall.c fix for daemon version checking crash on close 2010-12-17 14:26:17 -05:00
upcall.h adding sec flavor to upcall 2010-12-02 14:22:05 -05:00
util.c recovery: use normal OPEN/LOCK on ERR_NO_GRACE 2010-12-06 14:29:32 -05:00
util.h adding version to the upcall 2010-11-08 12:54:42 -05:00
volume.c setting SUPPORTS_HARD_LINKS if link_support is enabled 2010-11-04 11:51:26 -04:00