new queue structure
authorKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Fri, 31 Dec 1993 08:19:13 +0000 (00:19 -0800)
committerKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Fri, 31 Dec 1993 08:19:13 +0000 (00:19 -0800)
SCCS-vsn: sys/miscfs/specfs/spec_vnops.c 8.3
SCCS-vsn: sys/nfs/nfsnode.h 8.3
SCCS-vsn: sys/nfs/nfs_subs.c 8.2

usr/src/sys/miscfs/specfs/spec_vnops.c
usr/src/sys/nfs/nfs_subs.c
usr/src/sys/nfs/nfsnode.h

index e8e082f..9338605 100644 (file)
@@ -4,7 +4,7 @@
  *
  * %sccs.include.redist.c%
  *
  *
  * %sccs.include.redist.c%
  *
- *     @(#)spec_vnops.c        8.2 (Berkeley) %G%
+ *     @(#)spec_vnops.c        8.3 (Berkeley) %G%
  */
 
 #include <sys/param.h>
  */
 
 #include <sys/param.h>
@@ -418,8 +418,8 @@ spec_fsync(ap)
         */
 loop:
        s = splbio();
         */
 loop:
        s = splbio();
-       for (bp = vp->v_dirtyblkhd.le_next; bp; bp = nbp) {
-               nbp = bp->b_vnbufs.qe_next;
+       for (bp = vp->v_dirtyblkhd.lh_first; bp; bp = nbp) {
+               nbp = bp->b_vnbufs.le_next;
                if ((bp->b_flags & B_BUSY))
                        continue;
                if ((bp->b_flags & B_DELWRI) == 0)
                if ((bp->b_flags & B_BUSY))
                        continue;
                if ((bp->b_flags & B_DELWRI) == 0)
@@ -436,7 +436,7 @@ loop:
                        sleep((caddr_t)&vp->v_numoutput, PRIBIO + 1);
                }
 #ifdef DIAGNOSTIC
                        sleep((caddr_t)&vp->v_numoutput, PRIBIO + 1);
                }
 #ifdef DIAGNOSTIC
-               if (vp->v_dirtyblkhd.le_next) {
+               if (vp->v_dirtyblkhd.lh_first) {
                        vprint("spec_fsync: dirty", vp);
                        goto loop;
                }
                        vprint("spec_fsync: dirty", vp);
                        goto loop;
                }
index 4225e4c..1cc9577 100644 (file)
@@ -7,7 +7,7 @@
  *
  * %sccs.include.redist.c%
  *
  *
  * %sccs.include.redist.c%
  *
- *     @(#)nfs_subs.c  8.1 (Berkeley) %G%
+ *     @(#)nfs_subs.c  8.2 (Berkeley) %G%
  */
 
 /*
  */
 
 /*
@@ -61,7 +61,6 @@ u_long nfs_vers, nfs_prog, nfs_true, nfs_false;
 static u_long nfs_xid = 0;
 enum vtype ntov_type[7] = { VNON, VREG, VDIR, VBLK, VCHR, VLNK, VNON };
 extern struct proc *nfs_iodwant[NFS_MAXASYNCDAEMON];
 static u_long nfs_xid = 0;
 enum vtype ntov_type[7] = { VNON, VREG, VDIR, VBLK, VCHR, VLNK, VNON };
 extern struct proc *nfs_iodwant[NFS_MAXASYNCDAEMON];
-extern struct queue_entry nfs_bufq;
 extern struct nfsreq nfsreqh;
 extern int nqnfs_piggy[NFS_NPROCS];
 extern struct nfsrtt nfsrtt;
 extern struct nfsreq nfsreqh;
 extern int nqnfs_piggy[NFS_NPROCS];
 extern struct nfsrtt nfsrtt;
@@ -577,7 +576,7 @@ nfs_init()
        /* Ensure async daemons disabled */
        for (i = 0; i < NFS_MAXASYNCDAEMON; i++)
                nfs_iodwant[i] = (struct proc *)0;
        /* Ensure async daemons disabled */
        for (i = 0; i < NFS_MAXASYNCDAEMON; i++)
                nfs_iodwant[i] = (struct proc *)0;
-       queue_init(&nfs_bufq);
+       TAILQ_INIT(&nfs_bufq);
        nfs_xdrneg1 = txdr_unsigned(-1);
        nfs_nhinit();                   /* Init the nfsnode table */
        nfsrv_init(0);                  /* Init server data structures */
        nfs_xdrneg1 = txdr_unsigned(-1);
        nfs_nhinit();                   /* Init the nfsnode table */
        nfsrv_init(0);                  /* Init server data structures */
index 897f12f..c805c3d 100644 (file)
@@ -7,7 +7,7 @@
  *
  * %sccs.include.redist.c%
  *
  *
  * %sccs.include.redist.c%
  *
- *     @(#)nfsnode.h   8.2 (Berkeley) %G%
+ *     @(#)nfsnode.h   8.3 (Berkeley) %G%
  */
 
 /*
  */
 
 /*
@@ -74,6 +74,11 @@ struct nfsnode {
 #define VTONFS(vp)     ((struct nfsnode *)(vp)->v_data)
 #define NFSTOV(np)     ((struct vnode *)(np)->n_vnode)
 
 #define VTONFS(vp)     ((struct nfsnode *)(vp)->v_data)
 #define NFSTOV(np)     ((struct vnode *)(np)->n_vnode)
 
+/*
+ * Queue head for nfsiod's
+ */
+TAILQ_HEAD(nfsbufs, buf) nfs_bufq;
+
 #ifdef KERNEL
 /*
  * Prototypes for NFS vnode operations
 #ifdef KERNEL
 /*
  * Prototypes for NFS vnode operations