+ return (0);
+}
+
+/*
+ * XXX
+ * This routine flushes buffers out of the B_LOCKED queue when LFS has too
+ * many locked down. Eventually the pageout daemon will simply call LFS
+ * when pages need to be reclaimed. Note, we have one static count of locked
+ * buffers, so we can't have more than a single file system. To make this
+ * work for multiple file systems, put the count into the mount structure.
+ */
+void
+lfs_flush()
+{
+ register struct mount *mp;
+ struct mount *omp;
+
+ /* 1M in a 4K file system. */
+ if (locked_queue_count < 256)
+ return;
+ mp = rootfs;
+ do {
+ /*
+ * The lock check below is to avoid races with mount
+ * and unmount.
+ */
+ if (mp->mnt_stat.f_type == MOUNT_LFS &&
+ (mp->mnt_flag & (MNT_MLOCK|MNT_RDONLY|MNT_MPBUSY)) == 0 &&
+ !vfs_busy(mp)) {
+ /*
+ * We set the queue to 0 here because we are about to
+ * write all the dirty buffers we have. If more come
+ * in while we're writing the segment, they may not
+ * get written, so we want the count to reflect these
+ * new writes after the segwrite completes.
+ */
+ locked_queue_count = 0;
+ lfs_segwrite(mp, 0);
+ omp = mp;
+ mp = mp->mnt_next;
+ vfs_unbusy(omp);
+ } else
+ mp = mp->mnt_next;
+ } while (mp != rootfs);