Re: [PATCH][RFC] splice support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Mar 29 2006, Jeff Garzik wrote:
> Jens Axboe wrote:
> 
> >index 509ccec..23e2c7c 100644
> >--- a/fs/ext2/file.c
> >+++ b/fs/ext2/file.c
> >@@ -53,6 +53,8 @@ const struct file_operations ext2_file_o
> > 	.readv		= generic_file_readv,
> > 	.writev		= generic_file_writev,
> > 	.sendfile	= generic_file_sendfile,
> >+	.splice_read	= generic_file_splice_read,
> >+	.splice_write	= generic_file_splice_write,
> > };
> > 
> > #ifdef CONFIG_EXT2_FS_XIP
> >diff --git a/fs/ext3/file.c b/fs/ext3/file.c
> >index 783a796..1efefb6 100644
> >--- a/fs/ext3/file.c
> >+++ b/fs/ext3/file.c
> >@@ -119,6 +119,8 @@ const struct file_operations ext3_file_o
> > 	.release	= ext3_release_file,
> > 	.fsync		= ext3_sync_file,
> > 	.sendfile	= generic_file_sendfile,
> >+	.splice_read	= generic_file_splice_read,
> >+	.splice_write	= generic_file_splice_write,
> 
> >+static long do_splice_from(struct inode *pipe, struct file *out, size_t 
> >len,
> >+			   unsigned long flags)
> >+{
> >+	if (out->f_op && out->f_op->splice_write)
> >+		return out->f_op->splice_write(pipe, out, len, flags);
> 
> 1) What are the consequences of doing
> 
> 	if (f_op->splice_write)
> 		f_op->splice_write(...);
> 	else
> 		generic_file_splice_write(...);
> 
> to cause sys_splice() to default to supported?

It should probably work, the fs guys should know more about that. Any fs
that ->prepare_write(), ->commit_write() works for can use
generic_file_splice_write(). I prefer to keep it sane for now, mason
tells me that eg xfs might need special care.

> 2) Do you really have to test f_op itself for NULL?  Is that a stealth 
> closed-file check or something?  I would be surprised if f_op was ever 
> really NULL.

Probably not, paranoia.

After posting I fixed another bug, essentially making the 'more' flag to
sendpage() be correct. Should improve throughput a little.

-- 
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux