forked from Minki/linux
NFS: Fix a few more clear_bit() instances that need release semantics
All these bits are being used as bit locks. Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
parent
33c3214bf4
commit
43d20e80e2
@ -1194,10 +1194,7 @@ static int nfs4_run_state_manager(void *);
|
||||
|
||||
static void nfs4_clear_state_manager_bit(struct nfs_client *clp)
|
||||
{
|
||||
smp_mb__before_atomic();
|
||||
clear_bit(NFS4CLNT_MANAGER_RUNNING, &clp->cl_state);
|
||||
smp_mb__after_atomic();
|
||||
wake_up_bit(&clp->cl_state, NFS4CLNT_MANAGER_RUNNING);
|
||||
clear_and_wake_up_bit(NFS4CLNT_MANAGER_RUNNING, &clp->cl_state);
|
||||
rpc_wake_up(&clp->cl_rpcwaitq);
|
||||
}
|
||||
|
||||
|
@ -271,8 +271,7 @@ nfs_page_set_headlock(struct nfs_page *req)
|
||||
void
|
||||
nfs_page_clear_headlock(struct nfs_page *req)
|
||||
{
|
||||
smp_mb__before_atomic();
|
||||
clear_bit(PG_HEADLOCK, &req->wb_flags);
|
||||
clear_bit_unlock(PG_HEADLOCK, &req->wb_flags);
|
||||
smp_mb__after_atomic();
|
||||
if (!test_bit(PG_CONTENDED1, &req->wb_flags))
|
||||
return;
|
||||
@ -525,12 +524,7 @@ nfs_create_subreq(struct nfs_page *req,
|
||||
*/
|
||||
void nfs_unlock_request(struct nfs_page *req)
|
||||
{
|
||||
if (!NFS_WBACK_BUSY(req)) {
|
||||
printk(KERN_ERR "NFS: Invalid unlock attempted\n");
|
||||
BUG();
|
||||
}
|
||||
smp_mb__before_atomic();
|
||||
clear_bit(PG_BUSY, &req->wb_flags);
|
||||
clear_bit_unlock(PG_BUSY, &req->wb_flags);
|
||||
smp_mb__after_atomic();
|
||||
if (!test_bit(PG_CONTENDED2, &req->wb_flags))
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user