[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>
This commit is contained in:
Steve French 2005-04-28 22:41:05 -07:00 коммит произвёл Linus Torvalds
Родитель ad009ac965
Коммит cbe0476fa6
2 изменённых файлов: 4 добавлений и 1 удалений

Просмотреть файл

@ -6,7 +6,8 @@ Add support for lsattr (getting ext2/ext3/reiserfs attr flags from the server)
as new protocol extensions. Do not send Get/Set calls for POSIX ACLs as new protocol extensions. Do not send Get/Set calls for POSIX ACLs
unless server explicitly claims to support them in CIFS Unix extensions unless server explicitly claims to support them in CIFS Unix extensions
POSIX ACL capability bit. Fix packet signing when multiuser mounting with POSIX ACL capability bit. Fix packet signing when multiuser mounting with
different users from the same client to the same server. different users from the same client to the same server. Fix oops in
cifs_close.
Version 1.31 Version 1.31
------------ ------------

Просмотреть файл

@ -465,8 +465,10 @@ int cifs_close(struct inode *inode, struct file *file)
write_lock(&file->f_owner.lock); write_lock(&file->f_owner.lock);
} }
} }
write_lock(&GlobalSMBSeslock);
list_del(&pSMBFile->flist); list_del(&pSMBFile->flist);
list_del(&pSMBFile->tlist); list_del(&pSMBFile->tlist);
write_unlock(&GlobalSMBSeslock);
write_unlock(&file->f_owner.lock); write_unlock(&file->f_owner.lock);
kfree(pSMBFile->search_resume_name); kfree(pSMBFile->search_resume_name);
kfree(file->private_data); kfree(file->private_data);