diff options
author | rmacklem <rmacklem@FreeBSD.org> | 2011-07-03 21:44:26 +0000 |
---|---|---|
committer | rmacklem <rmacklem@FreeBSD.org> | 2011-07-03 21:44:26 +0000 |
commit | 5acd1abd93fcf6f4c05ad68a4ffddb284a4594fa (patch) | |
tree | 54d83b36ad1e09f2c55909baffb39367dce2e724 /sys/fs/nfs | |
parent | bf26f471edbd2d0ab6c20a80e4e6dd78fb78b55b (diff) | |
download | FreeBSD-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.h | 1 |
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 *); |