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)