Author: jeff
Date: Mon Mar 26 18:36:17 2018
New Revision: 331561
URL: https://svnweb.freebsd.org/changeset/base/331561

Log:
  Fix a bug introduced in r329612 that slowly invalidates all clean bufs.
  
  Reported by:  bde
  Reviewed by:  bde
  Sponsored by: Netflix, Dell/EMC Isilon

Modified:
  head/sys/kern/vfs_bio.c

Modified: head/sys/kern/vfs_bio.c
==============================================================================
--- head/sys/kern/vfs_bio.c     Mon Mar 26 18:34:03 2018        (r331560)
+++ head/sys/kern/vfs_bio.c     Mon Mar 26 18:36:17 2018        (r331561)
@@ -821,7 +821,8 @@ bufspace_daemon(void *arg)
                 *      which will inefficiently trade bufs with bqrelse
                 *      until we return to condition 2.
                 */
-               do {
+               while (bd->bd_bufspace > bd->bd_lobufspace ||
+                   bd->bd_freebuffers < bd->bd_hifreebuffers) {
                        if (buf_recycle(bd, false) != 0) {
                                if (bd_flushall(bd))
                                        continue;
@@ -842,9 +843,7 @@ bufspace_daemon(void *arg)
                                        BD_UNLOCK(bd);
                        }
                        maybe_yield();
-               } while (bd->bd_bufspace > bd->bd_lobufspace ||
-                   bd->bd_freebuffers < bd->bd_hifreebuffers);
-
+               }
                bufspace_daemon_wait(bd);
        }
 }
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to