Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ecac799a authored by Trond Myklebust's avatar Trond Myklebust
Browse files

NFSv4: Fix the setlk error handler

parent b4410c2f
Loading
Loading
Loading
Loading
+4 −9
Original line number Original line Diff line number Diff line
@@ -4173,23 +4173,18 @@ static const struct rpc_call_ops nfs4_recover_lock_ops = {


static void nfs4_handle_setlk_error(struct nfs_server *server, struct nfs4_lock_state *lsp, int new_lock_owner, int error)
static void nfs4_handle_setlk_error(struct nfs_server *server, struct nfs4_lock_state *lsp, int new_lock_owner, int error)
{
{
	struct nfs_client *clp = server->nfs_client;
	struct nfs4_state *state = lsp->ls_state;

	switch (error) {
	switch (error) {
	case -NFS4ERR_ADMIN_REVOKED:
	case -NFS4ERR_ADMIN_REVOKED:
	case -NFS4ERR_BAD_STATEID:
	case -NFS4ERR_BAD_STATEID:
	case -NFS4ERR_EXPIRED:
		lsp->ls_seqid.flags &= ~NFS_SEQID_CONFIRMED;
		if (new_lock_owner != 0 ||
		if (new_lock_owner != 0 ||
		   (lsp->ls_flags & NFS_LOCK_INITIALIZED) != 0)
		   (lsp->ls_flags & NFS_LOCK_INITIALIZED) != 0)
			nfs4_state_mark_reclaim_nograce(clp, state);
			nfs4_schedule_stateid_recovery(server, lsp->ls_state);
		lsp->ls_seqid.flags &= ~NFS_SEQID_CONFIRMED;
		break;
		break;
	case -NFS4ERR_STALE_STATEID:
	case -NFS4ERR_STALE_STATEID:
		if (new_lock_owner != 0 ||
		    (lsp->ls_flags & NFS_LOCK_INITIALIZED) != 0)
			nfs4_state_mark_reclaim_reboot(clp, state);
		lsp->ls_seqid.flags &= ~NFS_SEQID_CONFIRMED;
		lsp->ls_seqid.flags &= ~NFS_SEQID_CONFIRMED;
	case -NFS4ERR_EXPIRED:
		nfs4_schedule_lease_recovery(server->nfs_client);
	};
	};
}
}