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: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
8b6cc4d6f8
commit
4a706fa09f
1 changed files with 38 additions and 48 deletions
|
@ -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)
|
int nfs4_lock_delegation_recall(struct nfs4_state *state, struct file_lock *fl)
|
||||||
{
|
{
|
||||||
struct nfs_server *server = NFS_SERVER(state->inode);
|
struct nfs_server *server = NFS_SERVER(state->inode);
|
||||||
struct nfs4_exception exception = { };
|
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
err = nfs4_set_lock_state(state, fl);
|
err = nfs4_set_lock_state(state, fl);
|
||||||
if (err != 0)
|
if (err != 0)
|
||||||
goto out;
|
goto out;
|
||||||
do {
|
|
||||||
err = _nfs4_do_setlk(state, F_SETLK, fl, NFS_LOCK_NEW);
|
err = _nfs4_do_setlk(state, F_SETLK, fl, NFS_LOCK_NEW);
|
||||||
switch (err) {
|
switch (err) {
|
||||||
default:
|
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);
|
set_bit(NFS_DELEGATED_STATE, &state->flags);
|
||||||
case -NFS4ERR_EXPIRED:
|
case -NFS4ERR_EXPIRED:
|
||||||
nfs4_schedule_lease_recovery(server->nfs_client);
|
nfs4_schedule_lease_recovery(server->nfs_client);
|
||||||
err = -EAGAIN;
|
return -EAGAIN;
|
||||||
goto out;
|
|
||||||
case -NFS4ERR_BADSESSION:
|
case -NFS4ERR_BADSESSION:
|
||||||
case -NFS4ERR_BADSLOT:
|
case -NFS4ERR_BADSLOT:
|
||||||
case -NFS4ERR_BAD_HIGH_SLOT:
|
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:
|
case -NFS4ERR_DEADSESSION:
|
||||||
set_bit(NFS_DELEGATED_STATE, &state->flags);
|
set_bit(NFS_DELEGATED_STATE, &state->flags);
|
||||||
nfs4_schedule_session_recovery(server->nfs_client->cl_session, err);
|
nfs4_schedule_session_recovery(server->nfs_client->cl_session, err);
|
||||||
err = -EAGAIN;
|
return -EAGAIN;
|
||||||
goto out;
|
|
||||||
case -NFS4ERR_DELEG_REVOKED:
|
case -NFS4ERR_DELEG_REVOKED:
|
||||||
case -NFS4ERR_ADMIN_REVOKED:
|
case -NFS4ERR_ADMIN_REVOKED:
|
||||||
case -NFS4ERR_BAD_STATEID:
|
case -NFS4ERR_BAD_STATEID:
|
||||||
case -NFS4ERR_OPENMODE:
|
case -NFS4ERR_OPENMODE:
|
||||||
nfs4_schedule_stateid_recovery(server, state);
|
nfs4_schedule_stateid_recovery(server, state);
|
||||||
err = 0;
|
return 0;
|
||||||
goto out;
|
|
||||||
case -NFS4ERR_DELAY:
|
case -NFS4ERR_DELAY:
|
||||||
case -NFS4ERR_GRACE:
|
case -NFS4ERR_GRACE:
|
||||||
set_bit(NFS_DELEGATED_STATE, &state->flags);
|
set_bit(NFS_DELEGATED_STATE, &state->flags);
|
||||||
ssleep(1);
|
ssleep(1);
|
||||||
err = -EAGAIN;
|
return -EAGAIN;
|
||||||
goto out;
|
|
||||||
case -ENOMEM:
|
case -ENOMEM:
|
||||||
case -NFS4ERR_DENIED:
|
case -NFS4ERR_DENIED:
|
||||||
/* kill_proc(fl->fl_pid, SIGLOST, 1); */
|
/* kill_proc(fl->fl_pid, SIGLOST, 1); */
|
||||||
err = 0;
|
return 0;
|
||||||
goto out;
|
|
||||||
}
|
}
|
||||||
set_bit(NFS_DELEGATED_STATE, &state->flags);
|
|
||||||
err = nfs4_handle_exception(server, err, &exception);
|
|
||||||
} while (exception.retry);
|
|
||||||
out:
|
out:
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue