Date: Tue, 2 Sep 2014 10:35:04 +0000 (UTC) From: Gleb Smirnoff <glebius@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r270963 - projects/sendfile/sys/cddl/contrib/opensolaris/uts/common/fs/zfs Message-ID: <201409021035.s82AZ4Ae051285@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: glebius Date: Tue Sep 2 10:35:04 2014 New Revision: 270963 URL: http://svnweb.freebsd.org/changeset/base/270963 Log: Plug new sendfile(2) operation on ZFS. Unlike UFS it is blocking on I/O. Sponsored by: Netflix Sponsored by: Nginx, Inc. Modified: projects/sendfile/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Modified: projects/sendfile/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c ============================================================================== --- projects/sendfile/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Tue Sep 2 04:22:42 2014 (r270962) +++ projects/sendfile/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Tue Sep 2 10:35:04 2014 (r270963) @@ -5837,6 +5837,26 @@ zfs_freebsd_getpages(ap) } static int +zfs_freebsd_getpages_async(ap) + struct vop_getpages_async_args /* { + struct vnode *a_vp; + vm_page_t *a_m; + int a_count; + int a_reqpage; + vm_ooffset_t a_offset; + void (*)(void *) a_vop_getpages_iodone; + void *a_arg; + } */ *ap; +{ + int error; + + error = zfs_getpages(ap->a_vp, ap->a_m, ap->a_count, ap->a_reqpage); + vm_page_xunbusy(ap->a_m[ap->a_reqpage]); + ap->a_vop_getpages_iodone(ap->a_arg); + return (error); +} + +static int zfs_putpages(struct vnode *vp, vm_page_t *ma, size_t len, int flags, int *rtvals) { @@ -7146,6 +7166,7 @@ struct vop_vector zfs_vnodeops = { .vop_setacl = zfs_freebsd_setacl, .vop_aclcheck = zfs_freebsd_aclcheck, .vop_getpages = zfs_freebsd_getpages, + .vop_getpages_async = zfs_freebsd_getpages_async, .vop_putpages = zfs_freebsd_putpages, };
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201409021035.s82AZ4Ae051285>