android_kernel_oneplus_msm8998/fs/coda
Jan Harkes 6b40b97899 coda: pass the host file in vma->vm_file on mmap
commit 7fa0a1da3dadfd9216df7745a1331fdaa0940d1c upstream.

Patch series "Coda updates".

The following patch series is a collection of various fixes for Coda,
most of which were collected from linux-fsdevel or linux-kernel but
which have as yet not found their way upstream.

This patch (of 22):

Various file systems expect that vma->vm_file points at their own file
handle, several use file_inode(vma->vm_file) to get at their inode or
use vma->vm_file->private_data.  However the way Coda wrapped mmap on a
host file broke this assumption, vm_file was still pointing at the Coda
file and the host file systems would scribble over Coda's inode and
private file data.

This patch fixes the incorrect expectation and wraps vm_ops->open and
vm_ops->close to allow Coda to track when the vm_area_struct is
destroyed so we still release the reference on the Coda file handle at
the right time.

[This patch differs from the original upstream patch because older stable
 kernels do not have the call_mmap vfs helper so we call f_ops->mmap
 directly.]

Link: http://lkml.kernel.org/r/0e850c6e59c0b147dc2dcd51a3af004c948c3697.1558117389.git.jaharkes@cs.cmu.edu
Signed-off-by: Jan Harkes <jaharkes@cs.cmu.edu>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Colin Ian King <colin.king@canonical.com>
Cc: Dan Carpenter <dan.carpenter@oracle.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Fabian Frederick <fabf@skynet.be>
Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
Cc: Sam Protsenko <semen.protsenko@linaro.org>
Cc: Yann Droneaud <ydroneaud@opteya.com>
Cc: Zhouyang Jia <jiazhouyang09@gmail.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Jan Harkes <jaharkes@cs.cmu.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-08-04 09:34:52 +02:00
..
cache.c VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
cnode.c fs/coda: use __func__ 2014-06-06 16:08:09 -07:00
coda_cache.h take coda-private headers out of include/linux 2011-01-12 20:02:48 -05:00
coda_fs_i.h coda: Cache permisions in struct coda_inode_info in a kuid_t. 2013-02-13 06:00:54 -08:00
coda_int.h fs/coda/inode.c: add __init to init_inodecache() 2014-04-03 16:21:25 -07:00
coda_linux.c new helper: is_root_inode() 2014-10-31 17:48:54 -04:00
coda_linux.h fs: cleanup slight list_entry abuse 2015-06-23 18:01:59 -04:00
dir.c VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
file.c coda: pass the host file in vma->vm_file on mmap 2019-08-04 09:34:52 +02:00
inode.c VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
Kconfig fs/Kconfig: move coda out 2009-01-22 13:16:01 +03:00
Makefile fs: change to new flag variable 2011-03-17 14:02:57 +01:00
pioctl.c VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
psdev.c fs/coda: use linux/uaccess.h 2014-08-08 15:57:20 -07:00
symlink.c take coda-private headers out of include/linux 2011-01-12 20:02:48 -05:00
sysctl.c coda: convert use of typedef ctl_table to struct ctl_table 2014-06-06 16:08:16 -07:00
upcall.c coda: fix 'kernel memory exposure attempt' in fsync 2017-11-24 08:32:25 +01:00