diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-01-23 09:22:58 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-01-23 09:22:58 -0800 |
commit | 5ee7a81a9fd9f663acdd7ecf6c395bcfc014b98f (patch) | |
tree | cba7e99f5c3a1026ca3594d6656bf04db090c553 /net | |
parent | 0d90d638720ba14874e34cbd8766e4dc3f14f458 (diff) | |
parent | 7678ac50615d9c7a491d9861e020e4f5f71b594c (diff) | |
download | linux-stable-5ee7a81a9fd9f663acdd7ecf6c395bcfc014b98f.tar.gz linux-stable-5ee7a81a9fd9f663acdd7ecf6c395bcfc014b98f.tar.bz2 linux-stable-5ee7a81a9fd9f663acdd7ecf6c395bcfc014b98f.zip |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse
Pull fuse update from Miklos Szeredi:
"This contains a fix for a potential use-after-module-unload bug
noticed by Al and caching improvements for read-only fuse filesystems
by Andrew Gallagher"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
fuse: support clients that don't implement 'open'
fuse: don't invalidate attrs when not using atime
fuse: fix SetPageUptodate() condition in STORE
fuse: fix pipe_buf_operations
Diffstat (limited to 'net')
-rw-r--r-- | net/core/skbuff.c | 32 |
1 files changed, 1 insertions, 31 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 06e72d3cdf60..0b5149c5bc4a 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -74,36 +74,6 @@ struct kmem_cache *skbuff_head_cache __read_mostly; static struct kmem_cache *skbuff_fclone_cache __read_mostly; -static void sock_pipe_buf_release(struct pipe_inode_info *pipe, - struct pipe_buffer *buf) -{ - put_page(buf->page); -} - -static void sock_pipe_buf_get(struct pipe_inode_info *pipe, - struct pipe_buffer *buf) -{ - get_page(buf->page); -} - -static int sock_pipe_buf_steal(struct pipe_inode_info *pipe, - struct pipe_buffer *buf) -{ - return 1; -} - - -/* Pipe buffer operations for a socket. */ -static const struct pipe_buf_operations sock_pipe_buf_ops = { - .can_merge = 0, - .map = generic_pipe_buf_map, - .unmap = generic_pipe_buf_unmap, - .confirm = generic_pipe_buf_confirm, - .release = sock_pipe_buf_release, - .steal = sock_pipe_buf_steal, - .get = sock_pipe_buf_get, -}; - /** * skb_panic - private function for out-of-line support * @skb: buffer @@ -1830,7 +1800,7 @@ int skb_splice_bits(struct sk_buff *skb, unsigned int offset, .partial = partial, .nr_pages_max = MAX_SKB_FRAGS, .flags = flags, - .ops = &sock_pipe_buf_ops, + .ops = &nosteal_pipe_buf_ops, .spd_release = sock_spd_release, }; struct sk_buff *frag_iter; |