mirror of
https://github.com/team-infusion-developers/android_kernel_samsung_msm8976.git
synced 2024-09-21 20:04:01 +00:00
NFSv4: Convert the nfs4_lock_state->ls_flags to a bit field
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
2a369153c8
commit
795a88c968
3 changed files with 11 additions and 11 deletions
|
@ -132,8 +132,8 @@ struct nfs4_lock_owner {
|
||||||
struct nfs4_lock_state {
|
struct nfs4_lock_state {
|
||||||
struct list_head ls_locks; /* Other lock stateids */
|
struct list_head ls_locks; /* Other lock stateids */
|
||||||
struct nfs4_state * ls_state; /* Pointer to open state */
|
struct nfs4_state * ls_state; /* Pointer to open state */
|
||||||
#define NFS_LOCK_INITIALIZED 1
|
#define NFS_LOCK_INITIALIZED 0
|
||||||
int ls_flags;
|
unsigned long ls_flags;
|
||||||
struct nfs_seqid_counter ls_seqid;
|
struct nfs_seqid_counter ls_seqid;
|
||||||
nfs4_stateid ls_stateid;
|
nfs4_stateid ls_stateid;
|
||||||
atomic_t ls_count;
|
atomic_t ls_count;
|
||||||
|
|
|
@ -4395,7 +4395,7 @@ static void nfs4_locku_prepare(struct rpc_task *task, void *data)
|
||||||
|
|
||||||
if (nfs_wait_on_sequence(calldata->arg.seqid, task) != 0)
|
if (nfs_wait_on_sequence(calldata->arg.seqid, task) != 0)
|
||||||
return;
|
return;
|
||||||
if ((calldata->lsp->ls_flags & NFS_LOCK_INITIALIZED) == 0) {
|
if (test_bit(NFS_LOCK_INITIALIZED, &calldata->lsp->ls_flags) == 0) {
|
||||||
/* Note: exit _without_ running nfs4_locku_done */
|
/* Note: exit _without_ running nfs4_locku_done */
|
||||||
task->tk_action = NULL;
|
task->tk_action = NULL;
|
||||||
return;
|
return;
|
||||||
|
@ -4589,7 +4589,7 @@ static void nfs4_lock_done(struct rpc_task *task, void *calldata)
|
||||||
}
|
}
|
||||||
if (data->rpc_status == 0) {
|
if (data->rpc_status == 0) {
|
||||||
nfs4_stateid_copy(&data->lsp->ls_stateid, &data->res.stateid);
|
nfs4_stateid_copy(&data->lsp->ls_stateid, &data->res.stateid);
|
||||||
data->lsp->ls_flags |= NFS_LOCK_INITIALIZED;
|
set_bit(NFS_LOCK_INITIALIZED, &data->lsp->ls_flags);
|
||||||
renew_lease(NFS_SERVER(data->ctx->dentry->d_inode), data->timestamp);
|
renew_lease(NFS_SERVER(data->ctx->dentry->d_inode), data->timestamp);
|
||||||
}
|
}
|
||||||
out:
|
out:
|
||||||
|
@ -4636,7 +4636,7 @@ static void nfs4_handle_setlk_error(struct nfs_server *server, struct nfs4_lock_
|
||||||
case -NFS4ERR_BAD_STATEID:
|
case -NFS4ERR_BAD_STATEID:
|
||||||
lsp->ls_seqid.flags &= ~NFS_SEQID_CONFIRMED;
|
lsp->ls_seqid.flags &= ~NFS_SEQID_CONFIRMED;
|
||||||
if (new_lock_owner != 0 ||
|
if (new_lock_owner != 0 ||
|
||||||
(lsp->ls_flags & NFS_LOCK_INITIALIZED) != 0)
|
test_bit(NFS_LOCK_INITIALIZED, &lsp->ls_flags) != 0)
|
||||||
nfs4_schedule_stateid_recovery(server, lsp->ls_state);
|
nfs4_schedule_stateid_recovery(server, lsp->ls_state);
|
||||||
break;
|
break;
|
||||||
case -NFS4ERR_STALE_STATEID:
|
case -NFS4ERR_STALE_STATEID:
|
||||||
|
@ -4760,7 +4760,7 @@ static int nfs41_check_expired_locks(struct nfs4_state *state)
|
||||||
struct nfs_server *server = NFS_SERVER(state->inode);
|
struct nfs_server *server = NFS_SERVER(state->inode);
|
||||||
|
|
||||||
list_for_each_entry(lsp, &state->lock_states, ls_locks) {
|
list_for_each_entry(lsp, &state->lock_states, ls_locks) {
|
||||||
if (lsp->ls_flags & NFS_LOCK_INITIALIZED) {
|
if (test_bit(NFS_LOCK_INITIALIZED, &lsp->ls_flags)) {
|
||||||
status = nfs41_test_stateid(server, &lsp->ls_stateid);
|
status = nfs41_test_stateid(server, &lsp->ls_stateid);
|
||||||
if (status != NFS_OK) {
|
if (status != NFS_OK) {
|
||||||
/* Free the stateid unless the server
|
/* Free the stateid unless the server
|
||||||
|
@ -4768,7 +4768,7 @@ static int nfs41_check_expired_locks(struct nfs4_state *state)
|
||||||
if (status != -NFS4ERR_BAD_STATEID)
|
if (status != -NFS4ERR_BAD_STATEID)
|
||||||
nfs41_free_stateid(server,
|
nfs41_free_stateid(server,
|
||||||
&lsp->ls_stateid);
|
&lsp->ls_stateid);
|
||||||
lsp->ls_flags &= ~NFS_LOCK_INITIALIZED;
|
clear_bit(NFS_LOCK_INITIALIZED, &lsp->ls_flags);
|
||||||
ret = status;
|
ret = status;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -865,7 +865,7 @@ void nfs4_put_lock_state(struct nfs4_lock_state *lsp)
|
||||||
if (list_empty(&state->lock_states))
|
if (list_empty(&state->lock_states))
|
||||||
clear_bit(LK_STATE_IN_USE, &state->flags);
|
clear_bit(LK_STATE_IN_USE, &state->flags);
|
||||||
spin_unlock(&state->state_lock);
|
spin_unlock(&state->state_lock);
|
||||||
if (lsp->ls_flags & NFS_LOCK_INITIALIZED) {
|
if (test_bit(NFS_LOCK_INITIALIZED, &lsp->ls_flags)) {
|
||||||
if (nfs4_release_lockowner(lsp) == 0)
|
if (nfs4_release_lockowner(lsp) == 0)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -929,7 +929,7 @@ static bool nfs4_copy_lock_stateid(nfs4_stateid *dst, struct nfs4_state *state,
|
||||||
fl_pid = lockowner->l_pid;
|
fl_pid = lockowner->l_pid;
|
||||||
spin_lock(&state->state_lock);
|
spin_lock(&state->state_lock);
|
||||||
lsp = __nfs4_find_lock_state(state, fl_owner, fl_pid, NFS4_ANY_LOCK_TYPE);
|
lsp = __nfs4_find_lock_state(state, fl_owner, fl_pid, NFS4_ANY_LOCK_TYPE);
|
||||||
if (lsp != NULL && (lsp->ls_flags & NFS_LOCK_INITIALIZED) != 0) {
|
if (lsp != NULL && test_bit(NFS_LOCK_INITIALIZED, &lsp->ls_flags) != 0) {
|
||||||
nfs4_stateid_copy(dst, &lsp->ls_stateid);
|
nfs4_stateid_copy(dst, &lsp->ls_stateid);
|
||||||
ret = true;
|
ret = true;
|
||||||
}
|
}
|
||||||
|
@ -1297,7 +1297,7 @@ restart:
|
||||||
if (status >= 0) {
|
if (status >= 0) {
|
||||||
spin_lock(&state->state_lock);
|
spin_lock(&state->state_lock);
|
||||||
list_for_each_entry(lock, &state->lock_states, ls_locks) {
|
list_for_each_entry(lock, &state->lock_states, ls_locks) {
|
||||||
if (!(lock->ls_flags & NFS_LOCK_INITIALIZED))
|
if (!test_bit(NFS_LOCK_INITIALIZED, &lock->ls_flags))
|
||||||
pr_warn_ratelimited("NFS: "
|
pr_warn_ratelimited("NFS: "
|
||||||
"%s: Lock reclaim "
|
"%s: Lock reclaim "
|
||||||
"failed!\n", __func__);
|
"failed!\n", __func__);
|
||||||
|
@ -1369,7 +1369,7 @@ static void nfs4_clear_open_state(struct nfs4_state *state)
|
||||||
spin_lock(&state->state_lock);
|
spin_lock(&state->state_lock);
|
||||||
list_for_each_entry(lock, &state->lock_states, ls_locks) {
|
list_for_each_entry(lock, &state->lock_states, ls_locks) {
|
||||||
lock->ls_seqid.flags = 0;
|
lock->ls_seqid.flags = 0;
|
||||||
lock->ls_flags &= ~NFS_LOCK_INITIALIZED;
|
clear_bit(NFS_LOCK_INITIALIZED, &lock->ls_flags);
|
||||||
}
|
}
|
||||||
spin_unlock(&state->state_lock);
|
spin_unlock(&state->state_lock);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue