diff options
author | avg <avg@FreeBSD.org> | 2010-09-15 10:44:20 +0000 |
---|---|---|
committer | avg <avg@FreeBSD.org> | 2010-09-15 10:44:20 +0000 |
commit | 204e0a0decf0ba67518f045fac9a26db0bfb63e6 (patch) | |
tree | 25441f89da2d61cadf3bc32e619f20d4e0d37af0 /sys/cddl | |
parent | 9d9488f5990dda4562c15deb0e6de349dc3a0ddf (diff) | |
download | FreeBSD-src-204e0a0decf0ba67518f045fac9a26db0bfb63e6.zip FreeBSD-src-204e0a0decf0ba67518f045fac9a26db0bfb63e6.tar.gz |
zfs mappedread: use uiomove_fromphys where possible
Reviewed by: alc
Approved by: pjd
Tested by: tools/regression/fsx
MFC after: 2 weeks
Diffstat (limited to 'sys/cddl')
-rw-r--r-- | sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c index 9956516..7f3b0a8 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c @@ -479,14 +479,8 @@ again: dirbytes); dirbytes = 0; } - if (error == 0) { - sched_pin(); - sf = sf_buf_alloc(m, SFB_CPUPRIVATE); - va = (caddr_t)sf_buf_kva(sf); - error = uiomove(va + off, bytes, UIO_READ, uio); - sf_buf_free(sf); - sched_unpin(); - } + if (error == 0) + uiomove_fromphys(&m, off, bytes, uio); VM_OBJECT_LOCK(obj); vm_page_wakeup(m); } else if (m != NULL && uio->uio_segflg == UIO_NOCOPY) { |