Commit 1ebd32fc54bd04de6b3944587f25513c0681f98e
1 parent
00522fb41a
Exists in
master
and in
20 other branches
[PATCH] splice: add ->splice_write support for /dev/null
Useful for testing. Signed-off-by: Jens Axboe <axboe@suse.de>
Showing 1 changed file with 14 additions and 0 deletions Side-by-side Diff
drivers/char/mem.c
... | ... | @@ -27,6 +27,7 @@ |
27 | 27 | #include <linux/crash_dump.h> |
28 | 28 | #include <linux/backing-dev.h> |
29 | 29 | #include <linux/bootmem.h> |
30 | +#include <linux/pipe_fs_i.h> | |
30 | 31 | |
31 | 32 | #include <asm/uaccess.h> |
32 | 33 | #include <asm/io.h> |
... | ... | @@ -578,6 +579,18 @@ |
578 | 579 | return count; |
579 | 580 | } |
580 | 581 | |
582 | +static int pipe_to_null(struct pipe_inode_info *info, struct pipe_buffer *buf, | |
583 | + struct splice_desc *sd) | |
584 | +{ | |
585 | + return sd->len; | |
586 | +} | |
587 | + | |
588 | +static ssize_t splice_write_null(struct pipe_inode_info *pipe,struct file *out, | |
589 | + loff_t *ppos, size_t len, unsigned int flags) | |
590 | +{ | |
591 | + return splice_from_pipe(pipe, out, ppos, len, flags, pipe_to_null); | |
592 | +} | |
593 | + | |
581 | 594 | #ifdef CONFIG_MMU |
582 | 595 | /* |
583 | 596 | * For fun, we are using the MMU for this. |
... | ... | @@ -785,6 +798,7 @@ |
785 | 798 | .llseek = null_lseek, |
786 | 799 | .read = read_null, |
787 | 800 | .write = write_null, |
801 | + .splice_write = splice_write_null, | |
788 | 802 | }; |
789 | 803 | |
790 | 804 | #if defined(CONFIG_ISA) || !defined(__mc68000__) |