zdb patch

From: Hidetoshi Shimokawa <simokawa_at_FreeBSD.ORG>
Date: Sat, 14 Apr 2007 22:31:19 +0900
Here is a patch for zdb.
Now we can 'zdb -u pool' :-)

==== //depot/user/simokawa/firewire/contrib/opensolaris/lib/libzpool/common/kernel.c#2 - /home/p4/firewire/contrib/opensolaris/lib/libzpool/common/kernel.c ====
_at__at_ -38,6 +38,7 _at__at_
 #include <sys/zfs_context.h>
 #include <sys/zmod.h>
 #include <sys/utsname.h>
+#include <sys/disk.h>
 
 /*
  * Emulation of kernel services in userland.
_at__at_ -291,7 +292,11 _at__at_
 
 	ASSERT(abstime > 0);
 top:
+#if 0
 	delta = abstime - lbolt;
+#else /* for compatibility with FreeBSD kernel */
+	delta = abstime;
+#endif
 	if (delta <= 0)
 		return (-1);
 
_at__at_ -413,7 +418,11 _at__at_
 	*vpp = vp = umem_zalloc(sizeof (vnode_t), UMEM_NOFAIL);
 
 	vp->v_fd = fd;
-	vp->v_size = st.st_size;
+	if (st.st_mode & S_IFCHR) {
+		ioctl(fd, DIOCGMEDIASIZE, &vp->v_size);
+	} else {
+		vp->v_size = st.st_size;
+	}
 	vp->v_path = spa_strdup(path);
 
 	return (0);


/\ Hidetoshi Shimokawa
\/  simokawa_at_FreeBSD.ORG
Received on Sat Apr 14 2007 - 11:31:24 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:08 UTC