From fae5dd842a09a534442062b1470a7a3bddde596f Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Wed, 26 Apr 2006 14:40:08 +0200 Subject: [PATCH] --- yaml --- r: 26203 b: refs/heads/master c: 1ebd32fc54bd04de6b3944587f25513c0681f98e h: refs/heads/master i: 26201: e6330e8b6d1200a8edcb16116bc894b13f7a6236 26199: 75360c6f3611da58925ae0fb323bd2adacbbe4ee v: v3 --- [refs] | 2 +- trunk/drivers/char/mem.c | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 2797b47528d4..41e9b2fdd0f2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 00522fb41a2a9bf0f98a007c0e2b516a3873148c +refs/heads/master: 1ebd32fc54bd04de6b3944587f25513c0681f98e diff --git a/trunk/drivers/char/mem.c b/trunk/drivers/char/mem.c index 66719f9d294c..1fa9fa157c12 100644 --- a/trunk/drivers/char/mem.c +++ b/trunk/drivers/char/mem.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include @@ -578,6 +579,18 @@ static ssize_t write_null(struct file * file, const char __user * buf, return count; } +static int pipe_to_null(struct pipe_inode_info *info, struct pipe_buffer *buf, + struct splice_desc *sd) +{ + return sd->len; +} + +static ssize_t splice_write_null(struct pipe_inode_info *pipe,struct file *out, + loff_t *ppos, size_t len, unsigned int flags) +{ + return splice_from_pipe(pipe, out, ppos, len, flags, pipe_to_null); +} + #ifdef CONFIG_MMU /* * For fun, we are using the MMU for this. @@ -785,6 +798,7 @@ static struct file_operations null_fops = { .llseek = null_lseek, .read = read_null, .write = write_null, + .splice_write = splice_write_null, }; #if defined(CONFIG_ISA) || !defined(__mc68000__)