ms-nfs41-client/sys
Casey Bodley 0a309c4350 recovery: use normal OPEN/LOCK on ERR_NO_GRACE
if we see NFS4ERR_NO_GRACE from recovery operations, it means we lost our state due to a lease expiration rather than a server reboot.  in this case, it's possible that conflicting locks were granted to other clients, so we have to try normal OPEN/LOCK operations to recover our state.  because they're sent during recovery, nfs41_open() and nfs41_lock() take a new 'bool_t try_recovery' argument so we can avoid recursion

if these operations fail due to conflicting locks, we have no choice but to return errors to the application.  using a stateid that was revoked due to lease expiration results in NFS4ERR_EXPIRED, and we map this error to ERROR_FILE_INVALID: The volume for a file has been externally altered so that the opened file is no longer valid.

Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
2010-12-06 14:29:32 -05:00
..
makefile fresh git tree for public release 2010-10-12 10:15:48 -04:00
nfs41_debug.c driver: added error mapping for symlink outside filesystem 2010-11-05 14:35:28 -04:00
nfs41_debug.h driver: print_error() for error messages 2010-11-05 14:35:27 -04:00
nfs41_driver.c recovery: use normal OPEN/LOCK on ERR_NO_GRACE 2010-12-06 14:29:32 -05:00
nfs41_driver.h adding sec flavor to upcall 2010-12-02 14:22:05 -05:00
nfs41_driver.ini fresh git tree for public release 2010-10-12 10:15:48 -04:00
nfs41_driver.rc fresh git tree for public release 2010-10-12 10:15:48 -04:00
sources fresh git tree for public release 2010-10-12 10:15:48 -04:00
wmlkm.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
wmlkm.h fresh git tree for public release 2010-10-12 10:15:48 -04:00