+
+#ifndef notyet
+/*
+ * Nfs pseudo system call for asynchronous i/o daemons.
+ * These babies just pretend to be disk interrupt service routines
+ * for client nfs. They are mainly here for read ahead
+ * Never returns unless it fails or gets killed
+ */
+async_daemon()
+{
+ register struct buf *bp, *dp;
+ int error;
+
+ /*
+ * Must be super user
+ */
+ if (error = suser(u.u_cred, &u.u_acflag))
+ RETURN (error);
+ dp = &nfs_bqueue;
+ /*
+ * Just loop arround doin our stuff until SIGKILL
+ */
+ for (;;) {
+ while (dp->b_actf == NULL) {
+ nfs_iodwant++;
+ sleep((caddr_t)&nfs_iodwant, PZERO+1);
+ }
+ /* Take one off the end of the list */
+ bp = dp->b_actl;
+ if (bp->b_actl == dp) {
+ dp->b_actf = dp->b_actl = (struct buf *)0;
+ } else {
+ dp->b_actl = bp->b_actl;
+ bp->b_actl->b_actf = dp;
+ }
+ (void) nfs_doio(bp);
+ }
+}
+#endif