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])
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to