v_blockh is split into clean and dirty lists; count active I/O's
authorKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Fri, 5 Jan 1990 14:12:58 +0000 (06:12 -0800)
committerKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Fri, 5 Jan 1990 14:12:58 +0000 (06:12 -0800)
SCCS-vsn: sys/nfs/nfs_bio.c 7.9

usr/src/sys/nfs/nfs_bio.c

index f37ba77..abe32f4 100644 (file)
@@ -17,7 +17,7 @@
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
- *     @(#)nfs_bio.c   7.8 (Berkeley) %G%
+ *     @(#)nfs_bio.c   7.9 (Berkeley) %G%
  */
 
 #include "param.h"
  */
 
 #include "param.h"
@@ -80,12 +80,12 @@ nfs_read(vp, uio, ioflag, cred)
         */
        if (np->n_flag & NMODIFIED) {
                np->n_flag &= ~NMODIFIED;
         */
        if (np->n_flag & NMODIFIED) {
                np->n_flag &= ~NMODIFIED;
-               if (vp->v_blockh && vinvalbuf(vp, TRUE)) {
+               if (vinvalbuf(vp, TRUE)) {
                        if (error = nfs_getattr(vp, &vattr, cred))
                                return (error);
                        np->n_mtime = vattr.va_mtime.tv_sec;
                }
                        if (error = nfs_getattr(vp, &vattr, cred))
                                return (error);
                        np->n_mtime = vattr.va_mtime.tv_sec;
                }
-       } else if (vp->v_blockh) {
+       } else if (vp->v_cleanblkhd || vp->v_dirtyblkhd) {
                if (error = nfs_getattr(vp, &vattr, cred))
                        return (error);
                if (np->n_mtime != vattr.va_mtime.tv_sec) {
                if (error = nfs_getattr(vp, &vattr, cred))
                        return (error);
                if (np->n_mtime != vattr.va_mtime.tv_sec) {
@@ -204,6 +204,7 @@ nfs_write(vp, uio, ioflag, cred)
                                bp->b_flags &= ~(B_READ | B_DONE |
                                    B_ERROR | B_DELWRI | B_ASYNC);
                                u.u_ru.ru_oublock++;
                                bp->b_flags &= ~(B_READ | B_DONE |
                                    B_ERROR | B_DELWRI | B_ASYNC);
                                u.u_ru.ru_oublock++;
+                               bp->b_vp->v_numoutput++;
                                VOP_STRATEGY(bp);
                                error = biowait(bp);
                                if (bp->b_flags & B_ERROR) {
                                VOP_STRATEGY(bp);
                                error = biowait(bp);
                                if (bp->b_flags & B_ERROR) {