Commit 43d20e80 authored by Trond Myklebust's avatar Trond Myklebust
Browse files

NFS: Fix a few more clear_bit() instances that need release semantics



All these bits are being used as bit locks.

Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
parent 33c3214b
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -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);
}

+2 −8
Original line number Diff line number Diff line
@@ -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;