|
@@ -974,9 +974,6 @@ static int nfs4_copy_lock_stateid(nfs4_stateid *dst,
|
|
|
else if (lsp != NULL && test_bit(NFS_LOCK_INITIALIZED, &lsp->ls_flags) != 0) {
|
|
|
nfs4_stateid_copy(dst, &lsp->ls_stateid);
|
|
|
ret = 0;
|
|
|
- smp_rmb();
|
|
|
- if (!list_empty(&lsp->ls_seqid.list))
|
|
|
- ret = -EWOULDBLOCK;
|
|
|
}
|
|
|
spin_unlock(&state->state_lock);
|
|
|
nfs4_put_lock_state(lsp);
|
|
@@ -984,10 +981,9 @@ out:
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-static int nfs4_copy_open_stateid(nfs4_stateid *dst, struct nfs4_state *state)
|
|
|
+static void nfs4_copy_open_stateid(nfs4_stateid *dst, struct nfs4_state *state)
|
|
|
{
|
|
|
const nfs4_stateid *src;
|
|
|
- int ret;
|
|
|
int seq;
|
|
|
|
|
|
do {
|
|
@@ -996,12 +992,7 @@ static int nfs4_copy_open_stateid(nfs4_stateid *dst, struct nfs4_state *state)
|
|
|
if (test_bit(NFS_OPEN_STATE, &state->flags))
|
|
|
src = &state->open_stateid;
|
|
|
nfs4_stateid_copy(dst, src);
|
|
|
- ret = 0;
|
|
|
- smp_rmb();
|
|
|
- if (!list_empty(&state->owner->so_seqid.list))
|
|
|
- ret = -EWOULDBLOCK;
|
|
|
} while (read_seqretry(&state->seqlock, seq));
|
|
|
- return ret;
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -1026,7 +1017,8 @@ int nfs4_select_rw_stateid(nfs4_stateid *dst, struct nfs4_state *state,
|
|
|
* choose to use.
|
|
|
*/
|
|
|
goto out;
|
|
|
- ret = nfs4_copy_open_stateid(dst, state);
|
|
|
+ nfs4_copy_open_stateid(dst, state);
|
|
|
+ ret = 0;
|
|
|
out:
|
|
|
if (nfs_server_capable(state->inode, NFS_CAP_STATEID_NFSV41))
|
|
|
dst->seqid = 0;
|