summaryrefslogtreecommitdiffstats
path: root/fs/cifs/transport.c
diff options
context:
space:
mode:
authorJeff Layton <jlayton@redhat.com>2011-01-11 13:24:02 +0100
committerSteve French <sfrench@us.ibm.com>2011-01-19 18:52:38 +0100
commit8097531a5cb55c6472118da094dc88caf9be66ac (patch)
tree77707f0bc5fe63e08844426ffe878a0191f4faef /fs/cifs/transport.c
parentcifs: make wait_for_free_request take a TCP_Server_Info pointer (diff)
downloadlinux-8097531a5cb55c6472118da094dc88caf9be66ac.tar.xz
linux-8097531a5cb55c6472118da094dc88caf9be66ac.zip
cifs: clean up accesses to midCount
It's an atomic_t and the code accesses the "counter" field in it directly instead of using atomic_read(). It also is sometimes accessed under a spinlock and sometimes not. Move it out of the spinlock since we don't need belt-and-suspenders for something that's just informational. Reviewed-by: Suresh Jayaraman <sjayaraman@suse.de> Reviewed-by: Pavel Shilovsky <piastryyy@gmail.com> Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/transport.c')
-rw-r--r--fs/cifs/transport.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c
index 9a14f77e0ab2..b9eb0cffa003 100644
--- a/fs/cifs/transport.c
+++ b/fs/cifs/transport.c
@@ -61,10 +61,10 @@ AllocMidQEntry(const struct smb_hdr *smb_buffer, struct TCP_Server_Info *server)
temp->tsk = current;
}
- spin_lock(&GlobalMid_Lock);
- list_add_tail(&temp->qhead, &server->pending_mid_q);
atomic_inc(&midCount);
temp->midState = MID_REQUEST_ALLOCATED;
+ spin_lock(&GlobalMid_Lock);
+ list_add_tail(&temp->qhead, &server->pending_mid_q);
spin_unlock(&GlobalMid_Lock);
return temp;
}
@@ -78,8 +78,8 @@ DeleteMidQEntry(struct mid_q_entry *midEntry)
spin_lock(&GlobalMid_Lock);
midEntry->midState = MID_FREE;
list_del(&midEntry->qhead);
- atomic_dec(&midCount);
spin_unlock(&GlobalMid_Lock);
+ atomic_dec(&midCount);
if (midEntry->largeBuf)
cifs_buf_release(midEntry->resp_buf);
else