]> git.baikalelectronics.ru Git - kernel.git/commit
cifs: fix dentry refcount leak when opening a FIFO on lookup
authorJeff Layton <jlayton@redhat.com>
Thu, 23 Feb 2012 14:37:45 +0000 (09:37 -0500)
committerSteve French <smfrench@gmail.com>
Mon, 27 Feb 2012 05:16:26 +0000 (23:16 -0600)
commit57dc1f9bae2421e3d70c6b9b65e87f0e557e6011
tree542363c187479df4124bed5441a7fc66bafc4065
parent48155d4e62d96b5bbaa42736343b9643e96e1f63
cifs: fix dentry refcount leak when opening a FIFO on lookup

The cifs code will attempt to open files on lookup under certain
circumstances. What happens though if we find that the file we opened
was actually a FIFO or other special file?

Currently, the open filehandle just ends up being leaked leading to
a dentry refcount mismatch and oops on umount. Fix this by having the
code close the filehandle on the server if it turns out not to be a
regular file. While we're at it, change this spaghetti if statement
into a switch too.

Cc: stable@vger.kernel.org
Reported-by: CAI Qian <caiqian@redhat.com>
Tested-by: CAI Qian <caiqian@redhat.com>
Reviewed-by: Shirish Pargaonkar <shirishpargaonkar@gmail.com>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <smfrench@gmail.com>
fs/cifs/dir.c