fuse: fix pipe_buf_operations
authorMiklos Szeredi <mszeredi@suse.cz>
Wed, 22 Jan 2014 18:36:57 +0000 (19:36 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Feb 2014 21:47:59 +0000 (13:47 -0800)
commitd840f9899a6bc8bd88b3c87cd067ddf39a6ada45
tree4ef436e091d32ac9f01fe9c8fd87c02246cfd5c6
parent329f4557c93a1aa769896155deefa363f01283e5
fuse: fix pipe_buf_operations

commit 28a625cbc2a14f17b83e47ef907b2658576a32aa upstream.

Having this struct in module memory could Oops when if the module is
unloaded while the buffer still persists in a pipe.

Since sock_pipe_buf_ops is essentially the same as fuse_dev_pipe_buf_steal
merge them into nosteal_pipe_buf_ops (this is the same as
default_pipe_buf_ops except stealing the page from the buffer is not
allowed).

Reported-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/fuse/dev.c
fs/splice.c
include/linux/pipe_fs_i.h
net/core/skbuff.c