Module Name:    src
Committed By:   haad
Date:           Tue Dec 28 13:36:09 UTC 2010

Modified Files:
        src/external/cddl/osnet/lib/libzpool: kernel.c
        src/external/cddl/osnet/sys/sys: zfs_context.h

Log Message:
Fix problem where vnode vp_size was not updated when vndoe was already 
allocated,
for vdev. This makes ztest survive ztest_vdev_LUN_growth test. Replace dummy
VOP_GETATTR with vn_getattr routine which reset vp_size and vattr_size 
accordingly
to reality.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/lib/libzpool/kernel.c
cvs rdiff -u -r1.7 -r1.8 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/lib/libzpool/kernel.c
diff -u src/external/cddl/osnet/lib/libzpool/kernel.c:1.4 src/external/cddl/osnet/lib/libzpool/kernel.c:1.5
--- src/external/cddl/osnet/lib/libzpool/kernel.c:1.4	Sun May  2 23:50:34 2010
+++ src/external/cddl/osnet/lib/libzpool/kernel.c	Tue Dec 28 13:36:09 2010
@@ -1,4 +1,4 @@
-/*     $NetBSD: kernel.c,v 1.4 2010/05/02 23:50:34 haad Exp $  */
+/*     $NetBSD: kernel.c,v 1.5 2010/12/28 13:36:09 haad Exp $  */
 
 /*
  * CDDL HEADER START
@@ -29,7 +29,7 @@
 #pragma ident	"%Z%%M%	%I%	%E% SMI"
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: kernel.c,v 1.4 2010/05/02 23:50:34 haad Exp $");
+__RCSID("$NetBSD: kernel.c,v 1.5 2010/12/28 13:36:09 haad Exp $");
 
 #include <sys/zfs_context.h>
 #include <sys/sysctl.h>
@@ -213,6 +213,24 @@
 	return (ret);
 }
 
+int
+vn_getattr(vnode_t *vp, vattr_t *va)
+{
+	int fd;
+	struct stat64 st;
+
+	fd = vp->v_fd;
+
+	if (fstat64(fd, &st) == -1)
+		return (errno);
+
+	vp->v_size = st.st_size;
+	va->va_size = st.st_size;
+
+	return 0;
+}
+
+
 /*ARGSUSED*/
 int
 vn_rdwr(int uio, vnode_t *vp, void *addr, ssize_t len, offset_t offset,

Index: src/external/cddl/osnet/sys/sys/zfs_context.h
diff -u src/external/cddl/osnet/sys/sys/zfs_context.h:1.7 src/external/cddl/osnet/sys/sys/zfs_context.h:1.8
--- src/external/cddl/osnet/sys/sys/zfs_context.h:1.7	Tue Dec 14 01:23:43 2010
+++ src/external/cddl/osnet/sys/sys/zfs_context.h	Tue Dec 28 13:36:09 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: zfs_context.h,v 1.7 2010/12/14 01:23:43 haad Exp $	*/
+/*	$NetBSD: zfs_context.h,v 1.8 2010/12/28 13:36:09 haad Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -369,7 +369,7 @@
 
 #define	VOP_CLOSE(vp, f, c, o, cr, unk)	0
 #define	VOP_PUTPAGE(vp, of, sz, fl, cr, unk)	0
-#define	VOP_GETATTR(vp, vap, fl, cr, unk) ((vap)->va_size = (vp)->v_size, 0)
+#define	VOP_GETATTR(vp, vap, fl, cr, unk) vn_getattr(vp, vap)
 #define	VOP_FSYNC(vp, f, cr, unk)	fsync((vp)->v_fd)
 
 #define	VN_RELE(vp)	vn_close(vp)

Reply via email to