Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Apr 2007 15:46:53 +0200
From:      Pawel Jakub Dawidek <pjd@FreeBSD.org>
To:        Hidetoshi Shimokawa <simokawa@FreeBSD.ORG>
Cc:        freebsd-current@freebsd.org
Subject:   Re: zdb patch
Message-ID:  <20070414134653.GF10527@garage.freebsd.pl>
In-Reply-To: <86slb3t74o.wl%simokawa@FreeBSD.ORG>
References:  <86slb3t74o.wl%simokawa@FreeBSD.ORG>

next in thread | previous in thread | raw e-mail | index | archive | help

--wtjvnLv0o8UUzur2
Content-Type: text/plain; charset=iso-8859-2
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sat, Apr 14, 2007 at 10:31:19PM +0900, Hidetoshi Shimokawa wrote:
> Here is a patch for zdb.
> Now we can 'zdb -u pool' :-)
>=20
> =3D=3D=3D=3D //depot/user/simokawa/firewire/contrib/opensolaris/lib/libzp=
ool/common/kernel.c#2 - /home/p4/firewire/contrib/opensolaris/lib/libzpool/=
common/kernel.c =3D=3D=3D=3D
> @@ -38,6 +38,7 @@
>  #include <sys/zfs_context.h>
>  #include <sys/zmod.h>
>  #include <sys/utsname.h>
> +#include <sys/disk.h>
> =20
>  /*
>   * Emulation of kernel services in userland.
> @@ -291,7 +292,11 @@
> =20
>  	ASSERT(abstime > 0);
>  top:
> +#if 0
>  	delta =3D abstime - lbolt;
> +#else /* for compatibility with FreeBSD kernel */
> +	delta =3D abstime;
> +#endif

What is this change for? It works ok without it here.

>  	if (delta <=3D 0)
>  		return (-1);
> =20
> @@ -413,7 +418,11 @@
>  	*vpp =3D vp =3D umem_zalloc(sizeof (vnode_t), UMEM_NOFAIL);
> =20
>  	vp->v_fd =3D fd;
> -	vp->v_size =3D st.st_size;
> +	if (st.st_mode & S_IFCHR) {
> +		ioctl(fd, DIOCGMEDIASIZE, &vp->v_size);
> +	} else {
> +		vp->v_size =3D st.st_size;
> +	}
>  	vp->v_path =3D spa_strdup(path);
> =20
>  	return (0);

Please commit, but:
1. Move 'include <sys/disk.h>' to lib/libzpool/common/sys/zfs_context.h
2. Use S_ISCHR() macro and drop { }:

	if (S_ISCHR(st.st_mode))
		ioctl(fd, DIOCGMEDIASIZE, &vp->v_size);
	else
		vp->v_size =3D st.st_size;

Thanks!

--=20
Pawel Jakub Dawidek                       http://www.wheel.pl
pjd@FreeBSD.org                           http://www.FreeBSD.org
FreeBSD committer                         Am I Evil? Yes, I Am!

--wtjvnLv0o8UUzur2
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (FreeBSD)

iD8DBQFGINtNForvXbEpPzQRAtQvAKDBpbmFT9N+66cPw2r3nIS3XuZEvQCgoU8z
ovfmEH7EFkrLQDDY9LOl87E=
=jkGY
-----END PGP SIGNATURE-----

--wtjvnLv0o8UUzur2--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070414134653.GF10527>