aboutsummaryrefslogtreecommitdiff
path: root/sys/nfsserver/nfsrvstats.h
diff options
context:
space:
mode:
authorMatthew Dillon <dillon@FreeBSD.org>1999-09-17 05:57:57 +0000
committerMatthew Dillon <dillon@FreeBSD.org>1999-09-17 05:57:57 +0000
commitb5acbc8b9c6b2d2983de19196a05c052f632d696 (patch)
tree1177ea0715d05c42a4437340b92b4ac0230fc0df /sys/nfsserver/nfsrvstats.h
parent479112dfd9c892625ae7148ff82bee29d55b7dcc (diff)
downloadsrc-b5acbc8b9c6b2d2983de19196a05c052f632d696.tar.gz
src-b5acbc8b9c6b2d2983de19196a05c052f632d696.zip
Asynchronized client-side nfs_commit. NFS commit operations were
previously issued synchronously even if async daemons (nfsiod's) were available. The commit has been moved from the strategy code to the doio code in order to asynchronize it. Removed use of lastr in preparation for removal of vnode->v_lastr. It has been replaced with seqcount, which is already supported by the system and, in fact, gives us a better heuristic for sequential detection then lastr ever did. Made major performance improvements to the server side commit. The server previously fsync'd the entire file for each commit rpc. The server now bawrite()s only those buffers related to the offset/size specified in the commit rpc. Note that we do not commit the meta-data yet. This works still needs to be done. Note that a further optimization can be done (and has not yet been done) on the client: we can merge multiple potential commit rpc's into a single rpc with a greater file offset/size range and greatly reduce rpc traffic. Reviewed by: Alan Cox <alc@cs.rice.edu>, David Greenman <dg@root.com>
Notes
Notes: svn path=/head/; revision=51344
Diffstat (limited to 'sys/nfsserver/nfsrvstats.h')
-rw-r--r--sys/nfsserver/nfsrvstats.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/nfsserver/nfsrvstats.h b/sys/nfsserver/nfsrvstats.h
index c0cd18fae776..efdb6075aed7 100644
--- a/sys/nfsserver/nfsrvstats.h
+++ b/sys/nfsserver/nfsrvstats.h
@@ -604,6 +604,8 @@ int nfs_vinvalbuf __P((struct vnode *, int, struct ucred *, struct proc *,
int nfs_readrpc __P((struct vnode *, struct uio *, struct ucred *));
int nfs_writerpc __P((struct vnode *, struct uio *, struct ucred *, int *,
int *));
+int nfs_commit __P((struct vnode *vp, u_quad_t offset, int cnt,
+ struct ucred *cred, struct proc *procp));
int nfs_readdirrpc __P((struct vnode *, struct uio *, struct ucred *));
int nfs_asyncio __P((struct buf *, struct ucred *, struct proc *));
int nfs_doio __P((struct buf *, struct ucred *, struct proc *));