Module Name:    src
Committed By:   hannken
Date:           Mon Jun 17 08:08:51 UTC 2019

Modified Files:
        src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_znode.c
        src/external/cddl/osnet/sys/sys: zfs_context.h

Log Message:
Unmap pages when zfs_rezget() re-establishes a znode with its dbufs.


To generate a diff of this commit:
cvs rdiff -u -r1.28 -r1.29 \
    src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c
cvs rdiff -u -r1.21 -r1.22 src/external/cddl/osnet/sys/sys/zfs_context.h

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

Modified files:

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.28 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.29
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.28	Sun May 26 10:21:00 2019
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c	Mon Jun 17 08:08:50 2019
@@ -1560,10 +1560,14 @@ zfs_rezget(znode_t *zp)
 
 	zp->z_unlinked = (zp->z_links == 0);
 	zp->z_blksz = doi.doi_data_block_size;
+#ifdef __NetBSD__
+	mutex_enter(vp->v_interlock);
+	(void)VOP_PUTPAGES(vp, 0, 0, PGO_ALLPAGES|PGO_FREE|PGO_SYNCIO);
+#else
 	vn_pages_remove(vp, 0, 0);
+#endif
 	if (zp->z_size != size)
 		vnode_pager_setsize(vp, zp->z_size);
-
 	ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num);
 
 	return (0);

Index: src/external/cddl/osnet/sys/sys/zfs_context.h
diff -u src/external/cddl/osnet/sys/sys/zfs_context.h:1.21 src/external/cddl/osnet/sys/sys/zfs_context.h:1.22
--- src/external/cddl/osnet/sys/sys/zfs_context.h:1.21	Tue May  7 08:49:59 2019
+++ src/external/cddl/osnet/sys/sys/zfs_context.h	Mon Jun 17 08:08:51 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: zfs_context.h,v 1.21 2019/05/07 08:49:59 hannken Exp $	*/
+/*	$NetBSD: zfs_context.h,v 1.22 2019/06/17 08:08:51 hannken Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -777,7 +777,6 @@ vsprintf(char * __restrict buf, const ch
 
 void zfs_netbsd_setsize(vnode_t *, off_t);
 #define vnode_pager_setsize(vp, size) zfs_netbsd_setsize(vp, size)
-#define vn_pages_remove(a, b, c)
 
 #define getf		fd_getfile
 #define releasef	fd_putfile

Reply via email to