svn commit: r254415 - in head/sys: dev/streams fs/devfs kern sys

Konstantin Belousov kib at FreeBSD.org
Fri Aug 16 14:22:22 UTC 2013


Author: kib
Date: Fri Aug 16 14:22:20 2013
New Revision: 254415
URL: http://svnweb.freebsd.org/changeset/base/254415

Log:
  Restore the previous sendfile(2) behaviour on the block devices.
  Provide valid .fo_sendfile method for several missed struct fileops.
  
  Reviewed by:	glebius
  Sponsored by:	The FreeBSD Foundation

Modified:
  head/sys/dev/streams/streams.c
  head/sys/fs/devfs/devfs_vnops.c
  head/sys/kern/sys_procdesc.c
  head/sys/kern/vfs_vnops.c
  head/sys/sys/file.h

Modified: head/sys/dev/streams/streams.c
==============================================================================
--- head/sys/dev/streams/streams.c	Fri Aug 16 14:06:29 2013	(r254414)
+++ head/sys/dev/streams/streams.c	Fri Aug 16 14:22:20 2013	(r254415)
@@ -98,6 +98,7 @@ static struct fileops svr4_netops = {
 	.fo_close =  svr4_soo_close,
 	.fo_chmod = invfo_chmod,
 	.fo_chown = invfo_chown,
+	.fo_sendfile = invfo_sendfile,
 };
  
 static struct cdevsw streams_cdevsw = {

Modified: head/sys/fs/devfs/devfs_vnops.c
==============================================================================
--- head/sys/fs/devfs/devfs_vnops.c	Fri Aug 16 14:06:29 2013	(r254414)
+++ head/sys/fs/devfs/devfs_vnops.c	Fri Aug 16 14:22:20 2013	(r254415)
@@ -1696,6 +1696,7 @@ static struct fileops devfs_ops_f = {
 	.fo_close =	devfs_close_f,
 	.fo_chmod =	vn_chmod,
 	.fo_chown =	vn_chown,
+	.fo_sendfile =	vn_sendfile,
 	.fo_flags =	DFLAG_PASSABLE | DFLAG_SEEKABLE
 };
 

Modified: head/sys/kern/sys_procdesc.c
==============================================================================
--- head/sys/kern/sys_procdesc.c	Fri Aug 16 14:06:29 2013	(r254414)
+++ head/sys/kern/sys_procdesc.c	Fri Aug 16 14:22:20 2013	(r254415)
@@ -113,6 +113,7 @@ static struct fileops procdesc_ops = {
 	.fo_close = procdesc_close,
 	.fo_chmod = procdesc_chmod,
 	.fo_chown = procdesc_chown,
+	.fo_sendfile = invfo_sendfile,
 	.fo_flags = DFLAG_PASSABLE,
 };
 

Modified: head/sys/kern/vfs_vnops.c
==============================================================================
--- head/sys/kern/vfs_vnops.c	Fri Aug 16 14:06:29 2013	(r254414)
+++ head/sys/kern/vfs_vnops.c	Fri Aug 16 14:22:20 2013	(r254415)
@@ -88,7 +88,6 @@ static fo_poll_t	vn_poll;
 static fo_kqfilter_t	vn_kqfilter;
 static fo_stat_t	vn_statfile;
 static fo_close_t	vn_closefile;
-extern fo_sendfile_t	vn_sendfile;
 
 struct 	fileops vnops = {
 	.fo_read = vn_io_fault,

Modified: head/sys/sys/file.h
==============================================================================
--- head/sys/sys/file.h	Fri Aug 16 14:06:29 2013	(r254414)
+++ head/sys/sys/file.h	Fri Aug 16 14:22:20 2013	(r254415)
@@ -241,6 +241,8 @@ fo_chmod_t	invfo_chmod;
 fo_chown_t	invfo_chown;
 fo_sendfile_t	invfo_sendfile;
 
+fo_sendfile_t	vn_sendfile;
+
 void finit(struct file *, u_int, short, void *, struct fileops *);
 int fgetvp(struct thread *td, int fd, cap_rights_t rights, struct vnode **vpp);
 int fgetvp_exec(struct thread *td, int fd, cap_rights_t rights,


More information about the svn-src-all mailing list