Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Sep 2010 09:01:11 +0300
From:      Kostik Belousov <kostikbel@gmail.com>
To:        Rick Macklem <rmacklem@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r212439 - head/sys/fs/nfs
Message-ID:  <20100911060111.GT2465@deviant.kiev.zoral.com.ua>
In-Reply-To: <201009102318.o8ANIjUw098888@svn.freebsd.org>
References:  <201009102318.o8ANIjUw098888@svn.freebsd.org>

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

--u+FGODhbLwgAeSOU
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Fri, Sep 10, 2010 at 11:18:45PM +0000, Rick Macklem wrote:
> Author: rmacklem
> Date: Fri Sep 10 23:18:45 2010
> New Revision: 212439
> URL: http://svn.freebsd.org/changeset/base/212439
>=20
> Log:
>   Fix the NFSVNO_CMPFH() macro in the experimental NFS server so
>   that it works correctly for ZFS file handles. It is possible to
>   have two ZFS file handles that differ only in the bytes in the
>   fid_reserved field of the generic "struct fid" and comparing the
>   bytes in fid_data didn't catch this case. This patch changes the
>   macro to compare all bytes of "struct fid".
>  =20
>   Tested by:	gull at gull.us
>   MFC after:	2 weeks
>=20
> Modified:
>   head/sys/fs/nfs/nfsdport.h
>=20
> Modified: head/sys/fs/nfs/nfsdport.h
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/fs/nfs/nfsdport.h	Fri Sep 10 23:15:05 2010	(r212438)
> +++ head/sys/fs/nfs/nfsdport.h	Fri Sep 10 23:18:45 2010	(r212439)
> @@ -70,8 +70,7 @@ struct nfsexstuff {
>  #define	NFSVNO_CMPFH(f1, f2)						\
>      ((f1)->fh_fsid.val[0] =3D=3D (f2)->fh_fsid.val[0] &&			\
>       (f1)->fh_fsid.val[1] =3D=3D (f2)->fh_fsid.val[1] &&			\
> -     !bcmp((f1)->fh_fid.fid_data, (f2)->fh_fid.fid_data,		\
> -            (f1)->fh_fid.fid_len))
> +     bcmp(&(f1)->fh_fid, &(f2)->fh_fid, sizeof(struct fid)) =3D=3D 0)
> =20
>  #define	NFSLOCKHASH(f) 							\
>  	(&nfslockhash[(*((u_int32_t *)((f)->fh_fid.fid_data))) % NFSLOCKHASHSIZ=
E])
Then, fid_reserved is no more reserved ? Should we rename it ?

Comment for fid_reserved about longword alignment is wrong.

--u+FGODhbLwgAeSOU
Content-Type: application/pgp-signature
Content-Disposition: inline

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

iEYEARECAAYFAkyLGycACgkQC3+MBN1Mb4i+BQCfTDnOn+fFfFwYt8t66HQ5Wwoh
36cAniK/w2BOdH14x6+Dod7oylOhTmaL
=9613
-----END PGP SIGNATURE-----

--u+FGODhbLwgAeSOU--



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