@@ -397,6 +397,10 @@ static int nfs4_do_handle_exception(struct nfs_server *server,
exception->delay = 0;
exception->recovering = 0;
exception->retry = 0;
+
+ if (stateid == NULL && state != NULL)
+ stateid = &state->stateid;
+
switch(errorcode) {
case 0:
return 0;
@@ -405,7 +409,7 @@ static int nfs4_do_handle_exception(struct nfs_server *server,
case -NFS4ERR_EXPIRED:
case -NFS4ERR_BAD_STATEID:
if (inode != NULL && stateid != NULL) {
- nfs_inode_find_delegation_state_and_recover(inode,
+ nfs_inode_find_state_and_recover(inode,
stateid);
goto wait_on_recovery;
}