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

Commit 4a706fa0 authored by Trond Myklebust's avatar Trond Myklebust
Browse files

NFSv4: Clean up nfs4_lock_delegation_recall



All error cases are handled by the switch() statement, meaning that the
call to nfs4_handle_exception() is unreachable.

Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 8b6cc4d6
Loading
Loading
Loading
Loading
+38 −48
Original line number Diff line number Diff line
@@ -5144,13 +5144,11 @@ nfs4_proc_lock(struct file *filp, int cmd, struct file_lock *request)
int nfs4_lock_delegation_recall(struct nfs4_state *state, struct file_lock *fl)
{
	struct nfs_server *server = NFS_SERVER(state->inode);
	struct nfs4_exception exception = { };
	int err;

	err = nfs4_set_lock_state(state, fl);
	if (err != 0)
		goto out;
	do {
	err = _nfs4_do_setlk(state, F_SETLK, fl, NFS_LOCK_NEW);
	switch (err) {
		default:
@@ -5164,8 +5162,7 @@ int nfs4_lock_delegation_recall(struct nfs4_state *state, struct file_lock *fl)
			set_bit(NFS_DELEGATED_STATE, &state->flags);
		case -NFS4ERR_EXPIRED:
			nfs4_schedule_lease_recovery(server->nfs_client);
				err = -EAGAIN;
				goto out;
			return -EAGAIN;
		case -NFS4ERR_BADSESSION:
		case -NFS4ERR_BADSLOT:
		case -NFS4ERR_BAD_HIGH_SLOT:
@@ -5173,30 +5170,23 @@ int nfs4_lock_delegation_recall(struct nfs4_state *state, struct file_lock *fl)
		case -NFS4ERR_DEADSESSION:
			set_bit(NFS_DELEGATED_STATE, &state->flags);
			nfs4_schedule_session_recovery(server->nfs_client->cl_session, err);
				err = -EAGAIN;
				goto out;
			return -EAGAIN;
		case -NFS4ERR_DELEG_REVOKED:
		case -NFS4ERR_ADMIN_REVOKED:
		case -NFS4ERR_BAD_STATEID:
		case -NFS4ERR_OPENMODE:
			nfs4_schedule_stateid_recovery(server, state);
				err = 0;
				goto out;
			return 0;
		case -NFS4ERR_DELAY:
		case -NFS4ERR_GRACE:
			set_bit(NFS_DELEGATED_STATE, &state->flags);
			ssleep(1);
				err = -EAGAIN;
				goto out;
			return -EAGAIN;
		case -ENOMEM:
		case -NFS4ERR_DENIED:
			/* kill_proc(fl->fl_pid, SIGLOST, 1); */
				err = 0;
				goto out;
			return 0;
	}
		set_bit(NFS_DELEGATED_STATE, &state->flags);
		err = nfs4_handle_exception(server, err, &exception);
	} while (exception.retry);
out:
	return err;
}