diff options
author | Steve French <smfrench@austin.rr.com> | 2005-04-28 22:41:05 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-28 22:41:05 -0700 |
commit | cbe0476fa6a76b01b79e7c117963d45ed0a28758 (patch) | |
tree | e45a78777f977ba4670e7419bfdcde8a1429ceee /fs/cifs/file.c | |
parent | ad009ac96509e005d9978d0ae9e9ec4d63ad2990 (diff) | |
download | linux-stable-cbe0476fa6a76b01b79e7c117963d45ed0a28758.tar.gz linux-stable-cbe0476fa6a76b01b79e7c117963d45ed0a28758.tar.bz2 linux-stable-cbe0476fa6a76b01b79e7c117963d45ed0a28758.zip |
[PATCH] cifs: fix rare oops in cifs_close
Protect access to cifs file list in cifs_close path
Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/cifs/file.c')
-rw-r--r-- | fs/cifs/file.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/cifs/file.c b/fs/cifs/file.c index dcab7cf1b53b..9c7755053099 100644 --- a/fs/cifs/file.c +++ b/fs/cifs/file.c @@ -465,8 +465,10 @@ int cifs_close(struct inode *inode, struct file *file) write_lock(&file->f_owner.lock); } } + write_lock(&GlobalSMBSeslock); list_del(&pSMBFile->flist); list_del(&pSMBFile->tlist); + write_unlock(&GlobalSMBSeslock); write_unlock(&file->f_owner.lock); kfree(pSMBFile->search_resume_name); kfree(file->private_data); |