svn commit: r212439 - head/sys/fs/nfs

Rick Macklem rmacklem at FreeBSD.org
Fri Sep 10 23:18:46 UTC 2010


Author: rmacklem
Date: Fri Sep 10 23:18:45 2010
New Revision: 212439
URL: http://svn.freebsd.org/changeset/base/212439

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".
  
  Tested by:	gull at gull.us
  MFC after:	2 weeks

Modified:
  head/sys/fs/nfs/nfsdport.h

Modified: head/sys/fs/nfs/nfsdport.h
==============================================================================
--- 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] == (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