summaryrefslogtreecommitdiffstats
path: root/sys/fs/nfs
diff options
context:
space:
mode:
authorrmacklem <rmacklem@FreeBSD.org>2011-07-03 21:44:26 +0000
committerrmacklem <rmacklem@FreeBSD.org>2011-07-03 21:44:26 +0000
commit5acd1abd93fcf6f4c05ad68a4ffddb284a4594fa (patch)
tree54d83b36ad1e09f2c55909baffb39367dce2e724 /sys/fs/nfs
parentbf26f471edbd2d0ab6c20a80e4e6dd78fb78b55b (diff)
downloadFreeBSD-src-5acd1abd93fcf6f4c05ad68a4ffddb284a4594fa.zip
FreeBSD-src-5acd1abd93fcf6f4c05ad68a4ffddb284a4594fa.tar.gz
Modify the new NFSv4 client so that it appends a file handle
to the lock_owner4 string that goes on the wire. Also, add code to do a ReleaseLockOwner Op on the lock_owner4 string before a Close. Apparently not all NFSv4 servers handle multiple instances of the same lock_owner4 string, at least not in a compatible way. This patch avoids having multiple instances, except for one unusual case, which will be fixed by a future commit. Found at the recent NFSv4 interoperability Bakeathon. Tested by: tdh at excfb.com MFC after: 2 weeks
Diffstat (limited to 'sys/fs/nfs')
-rw-r--r--sys/fs/nfs/nfs_var.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/fs/nfs/nfs_var.h b/sys/fs/nfs/nfs_var.h
index 5f944b5..ea9bc8e 100644
--- a/sys/fs/nfs/nfs_var.h
+++ b/sys/fs/nfs/nfs_var.h
@@ -438,6 +438,7 @@ int nfscl_getcl(vnode_t, struct ucred *, NFSPROC_T *,
struct nfsclclient *nfscl_findcl(struct nfsmount *);
void nfscl_clientrelease(struct nfsclclient *);
void nfscl_freelock(struct nfscllock *, int);
+void nfscl_freelockowner(struct nfscllockowner *, int);
int nfscl_getbytelock(vnode_t, u_int64_t, u_int64_t, short,
struct ucred *, NFSPROC_T *, struct nfsclclient *, int, void *, int,
u_int8_t *, u_int8_t *, struct nfscllockowner **, int *, int *);
OpenPOWER on IntegriCloud