android_kernel_oneplus_msm8998/fs/fuse
Miklos Szeredi 8aa6a2a34f fuse: direct-io: don't dirty ITER_BVEC pages
commit 8fba54aebbdf1f999738121922e74bf796ad60ee upstream.

When reading from a loop device backed by a fuse file it deadlocks on
lock_page().

This is because the page is already locked by the read() operation done on
the loop device.  In this case we don't want to either lock the page or
dirty it.

So do what fs/direct-io.c does: only dirty the page for ITER_IOVEC vectors.

Reported-by: Sheng Yang <sheng@yasker.org>
Fixes: aa4d86163e ("block: loop: switch to VFS ITER_BVEC")
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Reviewed-by: Sheng Yang <sheng@yasker.org>
Reviewed-by: Ashish Samant <ashish.samant@oracle.com>
Tested-by: Sheng Yang <sheng@yasker.org>
Tested-by: Ashish Samant <ashish.samant@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-24 10:07:41 +02:00
..
control.c VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
cuse.c fuse: Add reference counting for fuse_io_priv 2016-04-12 09:08:58 -07:00
dev.c fs/fuse: fix ioctl type confusion 2015-08-16 12:35:44 -07:00
dir.c new helper: free_page_put_link() 2015-05-11 08:13:13 -04:00
file.c fuse: direct-io: don't dirty ITER_BVEC pages 2016-09-24 10:07:41 +02:00
fuse_i.h fuse: Add reference counting for fuse_io_priv 2016-04-12 09:08:58 -07:00
inode.c fuse: fix wrong assignment of ->flags in fuse_send_init() 2016-08-16 09:30:50 +02:00
Kconfig fuse: Move CUSE Kconfig entry from fs/Kconfig into fs/fuse/Kconfig 2013-01-17 13:08:45 +01:00
Makefile