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, _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"