Module Name:    src
Committed By:   christos
Date:           Thu Apr  6 00:02:19 UTC 2017

Modified Files:
        src/sys/fs/puffs: puffs_vnops.c

Log Message:
use ubc_zerorange


To generate a diff of this commit:
cvs rdiff -u -r1.206 -r1.207 src/sys/fs/puffs/puffs_vnops.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/fs/puffs/puffs_vnops.c
diff -u src/sys/fs/puffs/puffs_vnops.c:1.206 src/sys/fs/puffs/puffs_vnops.c:1.207
--- src/sys/fs/puffs/puffs_vnops.c:1.206	Tue Apr  4 17:07:50 2017
+++ src/sys/fs/puffs/puffs_vnops.c	Wed Apr  5 20:02:19 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: puffs_vnops.c,v 1.206 2017/04/04 21:07:50 christos Exp $	*/
+/*	$NetBSD: puffs_vnops.c,v 1.207 2017/04/06 00:02:19 christos Exp $	*/
 
 /*
  * Copyright (c) 2005, 2006, 2007  Antti Kantee.  All Rights Reserved.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.206 2017/04/04 21:07:50 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.207 2017/04/06 00:02:19 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/buf.h>
@@ -1147,11 +1147,6 @@ puffs_vnop_getattr(void *v)
 static void
 zerofill_lastpage(struct vnode *vp, voff_t off)
 {
-	char zbuf[MAX_PAGE_SIZE];
-	struct iovec iov;
-	struct uio uio;
-	vsize_t len;
-	int error;
 
 	if (trunc_page(off) == off)
 		return;
@@ -1159,27 +1154,8 @@ zerofill_lastpage(struct vnode *vp, voff
 	if (vp->v_writecount == 0)
 		return;
 
-	len = round_page(off) - off;
-	KASSERT(len < sizeof(zbuf));
-	memset(zbuf, 0, len);
-
-	iov.iov_base = zbuf;
-	iov.iov_len = len;
-	UIO_SETUP_SYSSPACE(&uio);
-	uio.uio_iov = &iov;
-	uio.uio_iovcnt = 1;
-	uio.uio_offset = off;
-	uio.uio_resid = len;
-	uio.uio_rw = UIO_WRITE;
-
-	error = ubc_uiomove(&vp->v_uobj, &uio, len,
-			    UVM_ADV_SEQUENTIAL, UBC_WRITE|UBC_UNMAP_FLAG(vp));
-	if (error) {
-		DPRINTF(("zero-fill 0x%" PRIxVSIZE "@0x%" PRIx64 
-			 " failed: error = %d\n", len, off, error));
-	}
-
-	return;
+	vsize_t len = round_page(off) - off;
+	ubc_zerorange(&vp->v_uobj, off, len, UBC_WRITE|UBC_UNMAP_FLAG(vp));
 }
 
 static int

Reply via email to