svn commit: r230899 - in projects/nfsv4.1-client/sys/fs: nfs
nfsclient
Rick Macklem
rmacklem at FreeBSD.org
Thu Feb 2 04:20:33 UTC 2012
Author: rmacklem
Date: Thu Feb 2 04:20:33 2012
New Revision: 230899
URL: http://svn.freebsd.org/changeset/base/230899
Log:
Add a flag to nfsm_stateidtom() so that it will put the stateid
on the wire with a seqid == 0. This is needed for NFSv4.1, where
stateid.seqid == 0 defines the stateid as the most recent
incarnation of the stateid.
Modified:
projects/nfsv4.1-client/sys/fs/nfs/nfsproto.h
projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clcomsubs.c
Modified: projects/nfsv4.1-client/sys/fs/nfs/nfsproto.h
==============================================================================
--- projects/nfsv4.1-client/sys/fs/nfs/nfsproto.h Thu Feb 2 00:10:20 2012 (r230898)
+++ projects/nfsv4.1-client/sys/fs/nfs/nfsproto.h Thu Feb 2 04:20:33 2012 (r230899)
@@ -468,6 +468,7 @@
#define NFSSTATEID_PUTALLZERO 0
#define NFSSTATEID_PUTALLONE 1
#define NFSSTATEID_PUTSTATEID 2
+#define NFSSTATEID_PUTSEQIDZERO 3
/*
* Bits for share access and deny.
Modified: projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clcomsubs.c
==============================================================================
--- projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clcomsubs.c Thu Feb 2 00:10:20 2012 (r230898)
+++ projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clcomsubs.c Thu Feb 2 04:20:33 2012 (r230899)
@@ -496,6 +496,11 @@ nfsm_stateidtom(struct nfsrv_descript *n
st->other[0] = 0xffffffff;
st->other[1] = 0xffffffff;
st->other[2] = 0xffffffff;
+ } else if (flag == NFSSTATEID_PUTSEQIDZERO) {
+ st->seqid = 0;
+ st->other[0] = stateidp->other[0];
+ st->other[1] = stateidp->other[1];
+ st->other[2] = stateidp->other[2];
} else {
st->seqid = stateidp->seqid;
st->other[0] = stateidp->other[0];
More information about the svn-src-projects
mailing list