diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-11-20 13:14:16 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-11-20 13:14:16 -0800 |
commit | 0cb39aa0ac3a9dc64171b43a85d17e539d82f2d6 (patch) | |
tree | c69f6840e55b868e23b3315eb0f09ad245ce67c4 /fs/cifs/misc.c | |
parent | c93fc2873edcd3eae0ed11ba288a77f3ef62e92b (diff) | |
parent | ddb4cbfc53aa0913ee8da059fcbf628d14f40f63 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
[CIFS] Do not attempt to close invalidated file handles
[CIFS] fix check for dead tcon in smb_init
Diffstat (limited to 'fs/cifs/misc.c')
-rw-r--r-- | fs/cifs/misc.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c index addd1dcc2d7..9ee3f689c2b 100644 --- a/fs/cifs/misc.c +++ b/fs/cifs/misc.c @@ -555,12 +555,14 @@ is_valid_oplock_break(struct smb_hdr *buf, struct TCP_Server_Info *srv) continue; cifs_stats_inc(&tcon->num_oplock_brks); + write_lock(&GlobalSMBSeslock); list_for_each(tmp2, &tcon->openFileList) { netfile = list_entry(tmp2, struct cifsFileInfo, tlist); if (pSMB->Fid != netfile->netfid) continue; + write_unlock(&GlobalSMBSeslock); read_unlock(&cifs_tcp_ses_lock); cFYI(1, ("file id match, oplock break")); pCifsInode = CIFS_I(netfile->pInode); @@ -576,6 +578,7 @@ is_valid_oplock_break(struct smb_hdr *buf, struct TCP_Server_Info *srv) return true; } + write_unlock(&GlobalSMBSeslock); read_unlock(&cifs_tcp_ses_lock); cFYI(1, ("No matching file for oplock break")); return true; |