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-head
mailing list