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.ORGReceived 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