diff options
author | rmacklem <rmacklem@FreeBSD.org> | 2009-05-18 21:22:03 +0000 |
---|---|---|
committer | rmacklem <rmacklem@FreeBSD.org> | 2009-05-18 21:22:03 +0000 |
commit | 29fae940fcbc3e4fe1733778367d0ccc87440b27 (patch) | |
tree | 9277d562e5b046ed7113735d075d9ce0ed660a74 /sys/fs/nfsclient/nfs_clvnops.c | |
parent | f5760f10df7caf283652fa3551951b95d84a2423 (diff) | |
download | FreeBSD-src-29fae940fcbc3e4fe1733778367d0ccc87440b27.zip FreeBSD-src-29fae940fcbc3e4fe1733778367d0ccc87440b27.tar.gz |
Change the experimental NFSv4 client so that it does not do
the NFSv4 Close operations until ncl_inactive(). This is
necessary so that the Open StateIDs are available for doing
I/O on mmap'd files after VOP_CLOSE(). I also changed some
indentation for the nfscl_getclose() function.
Approved by: kib (mentor)
Diffstat (limited to 'sys/fs/nfsclient/nfs_clvnops.c')
-rw-r--r-- | sys/fs/nfsclient/nfs_clvnops.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/sys/fs/nfsclient/nfs_clvnops.c b/sys/fs/nfsclient/nfs_clvnops.c index 62808a4..4b320ac 100644 --- a/sys/fs/nfsclient/nfs_clvnops.c +++ b/sys/fs/nfsclient/nfs_clvnops.c @@ -517,8 +517,7 @@ nfs_open(struct vop_open_args *ap) error = ncl_vinvalbuf(vp, V_SAVE, ap->a_td, 1); if (error == EINTR || error == EIO) { if (NFS_ISV4(vp)) - (void) nfsrpc_close(vp, ap->a_cred, - ap->a_td); + (void) nfsrpc_close(vp, 0, ap->a_td); return (error); } np->n_attrstamp = 0; @@ -527,8 +526,7 @@ nfs_open(struct vop_open_args *ap) error = VOP_GETATTR(vp, &vattr, ap->a_cred); if (error) { if (NFS_ISV4(vp)) - (void) nfsrpc_close(vp, ap->a_cred, - ap->a_td); + (void) nfsrpc_close(vp, 0, ap->a_td); return (error); } mtx_lock(&np->n_mtx); @@ -549,8 +547,7 @@ nfs_open(struct vop_open_args *ap) error = VOP_GETATTR(vp, &vattr, ap->a_cred); if (error) { if (NFS_ISV4(vp)) - (void) nfsrpc_close(vp, ap->a_cred, - ap->a_td); + (void) nfsrpc_close(vp, 0, ap->a_td); return (error); } mtx_lock(&np->n_mtx); @@ -562,8 +559,8 @@ nfs_open(struct vop_open_args *ap) error = ncl_vinvalbuf(vp, V_SAVE, ap->a_td, 1); if (error == EINTR || error == EIO) { if (NFS_ISV4(vp)) - (void) nfsrpc_close(vp, - ap->a_cred, ap->a_td); + (void) nfsrpc_close(vp, 0, + ap->a_td); return (error); } mtx_lock(&np->n_mtx); @@ -583,8 +580,7 @@ nfs_open(struct vop_open_args *ap) error = ncl_vinvalbuf(vp, V_SAVE, ap->a_td, 1); if (error) { if (NFS_ISV4(vp)) - (void) nfsrpc_close(vp, ap->a_cred, - ap->a_td); + (void) nfsrpc_close(vp, 0, ap->a_td); return (error); } mtx_lock(&np->n_mtx); @@ -745,7 +741,7 @@ nfs_close(struct vop_close_args *ap) /* * and do the close. */ - ret = nfsrpc_close(vp, cred, ap->a_td); + ret = nfsrpc_close(vp, 0, ap->a_td); if (!error && ret) error = ret; if (error) |