svn commit: r213190 - stable/8/sys/fs/nfs

Rick Macklem rmacklem at FreeBSD.org
Mon Sep 27 02:09:26 UTC 2010


Author: rmacklem
Date: Mon Sep 27 02:09:25 2010
New Revision: 213190
URL: http://svn.freebsd.org/changeset/base/213190

Log:
  MFC: r212439
  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".

Modified:
  stable/8/sys/fs/nfs/nfsdport.h
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/fs/nfs/nfsdport.h
==============================================================================
--- stable/8/sys/fs/nfs/nfsdport.h	Mon Sep 27 01:41:39 2010	(r213189)
+++ stable/8/sys/fs/nfs/nfsdport.h	Mon Sep 27 02:09:25 2010	(r213190)
@@ -70,8 +70,7 @@ struct nfsexstuff {
 #define	NFSVNO_CMPFH(f1, f2)						\
     ((f1)->fh_fsid.val[0] == (f2)->fh_fsid.val[0] &&			\
      (f1)->fh_fsid.val[1] == (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)) == 0)
 
 #define	NFSLOCKHASH(f) 							\
 	(&nfslockhash[(*((u_int32_t *)((f)->fh_fid.fid_data))) % NFSLOCKHASHSIZE])


More information about the svn-src-all mailing list