Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 May 2017 22:27:48 +0000 (UTC)
From:      Andriy Gapon <avg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r318830 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Message-ID:  <201705242227.v4OMRmQO053611@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: avg
Date: Wed May 24 22:27:48 2017
New Revision: 318830
URL: https://svnweb.freebsd.org/changeset/base/318830

Log:
  MFC r316921: 8027 tighten up dsl_pool_dirty_delta
  
  illumos/illumos-gate@313ae1e182df6e6a04b56c4b73ded33e11b75666
  https://github.com/illumos/illumos-gate/commit/313ae1e182df6e6a04b56c4b73ded33e11b75666
  
  https://www.illumos.org/issues/8027
    dsl_pool_dirty_delta() should not wake up waiters when dp->dp_dirty_total ==
    zfs_dirty_data_max, because they wait for dp_dirty_total to fall strictly below
    the threshold.
    It's probably very rare for that condition to occur, but it's better to have
    more accurate code.
  
  Reviewed by: Matt Ahrens <mahrens@delphix.com>
  Reviewed by: Serapheim Dimitropoulos <serapheim@delphix.com>
  Reviewed by: Paul Dagnelie <pcd@delphix.com>
  Approved by: Dan McDonald <danmcd@omniti.com>
  Author: Andriy Gapon <avg@FreeBSD.org>
  MFC after:	1 week

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c
Directory Properties:
  head/sys/cddl/contrib/opensolaris/   (props changed)

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c	Wed May 24 22:25:26 2017	(r318829)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c	Wed May 24 22:27:48 2017	(r318830)
@@ -559,7 +559,7 @@ dsl_pool_dirty_delta(dsl_pool_t *dp, int
 	 * Note: we signal even when increasing dp_dirty_total.
 	 * This ensures forward progress -- each thread wakes the next waiter.
 	 */
-	if (dp->dp_dirty_total <= zfs_dirty_data_max)
+	if (dp->dp_dirty_total < zfs_dirty_data_max)
 		cv_signal(&dp->dp_spaceavail_cv);
 }
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201705242227.v4OMRmQO053611>