summaryrefslogtreecommitdiffstats
path: root/sys/nfs/nfs_bio.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/nfs/nfs_bio.c')
-rw-r--r--sys/nfs/nfs_bio.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/sys/nfs/nfs_bio.c b/sys/nfs/nfs_bio.c
index 0d8a782..c7269ef 100644
--- a/sys/nfs/nfs_bio.c
+++ b/sys/nfs/nfs_bio.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* @(#)nfs_bio.c 8.9 (Berkeley) 3/30/95
- * $Id: nfs_bio.c,v 1.69 1999/04/06 03:07:54 peter Exp $
+ * $Id: nfs_bio.c,v 1.70 1999/05/02 23:56:24 alc Exp $
*/
@@ -465,7 +465,7 @@ nfs_bioread(vp, uio, ioflag, cred)
if ((rabp->b_flags & (B_CACHE|B_DELWRI)) == 0) {
rabp->b_flags |= (B_READ | B_ASYNC);
vfs_busy_pages(rabp, 0);
- if (nfs_asyncio(rabp, cred)) {
+ if (nfs_asyncio(rabp, cred, p)) {
rabp->b_flags |= B_INVAL|B_ERROR;
vfs_unbusy_pages(rabp);
brelse(rabp);
@@ -627,7 +627,7 @@ nfs_bioread(vp, uio, ioflag, cred)
if ((rabp->b_flags & (B_CACHE|B_DELWRI)) == 0) {
rabp->b_flags |= (B_READ | B_ASYNC);
vfs_busy_pages(rabp, 0);
- if (nfs_asyncio(rabp, cred)) {
+ if (nfs_asyncio(rabp, cred, p)) {
rabp->b_flags |= B_INVAL|B_ERROR;
vfs_unbusy_pages(rabp);
brelse(rabp);
@@ -894,7 +894,6 @@ again:
if (bp->b_dirtyend > 0 &&
(on > bp->b_dirtyend || (on + n) < bp->b_dirtyoff)) {
- bp->b_proc = p;
if (VOP_BWRITE(bp) == EINTR)
return (EINTR);
goto again;
@@ -960,7 +959,6 @@ again:
* to turn off caching in this case. Very odd. XXX
*/
if ((np->n_flag & NQNFSNONCACHE) || (ioflag & IO_SYNC)) {
- bp->b_proc = p;
if (ioflag & IO_INVAL)
bp->b_flags |= B_NOCACHE;
error = VOP_BWRITE(bp);
@@ -973,9 +971,8 @@ again:
}
} else if ((n + on) == biosize &&
(nmp->nm_flag & NFSMNT_NQNFS) == 0) {
- bp->b_proc = (struct proc *)0;
bp->b_flags |= B_ASYNC;
- (void)nfs_writebp(bp, 0);
+ (void)nfs_writebp(bp, 0, 0);
} else {
bdwrite(bp);
}
@@ -1097,9 +1094,10 @@ nfs_vinvalbuf(vp, flags, cred, p, intrflg)
* is eventually dequeued by the async daemon, nfs_doio() *will*.
*/
int
-nfs_asyncio(bp, cred)
+nfs_asyncio(bp, cred, procp)
register struct buf *bp;
struct ucred *cred;
+ struct proc *procp;
{
struct nfsmount *nmp;
int i;
@@ -1165,7 +1163,7 @@ again:
error = tsleep(&nmp->nm_bufq, slpflag | PRIBIO,
"nfsaio", slptimeo);
if (error) {
- if (nfs_sigintr(nmp, NULL, bp->b_proc))
+ if (nfs_sigintr(nmp, NULL, procp))
return (EINTR);
if (slpflag == PCATCH) {
slpflag = 0;
OpenPOWER on IntegriCloud