MFC r316921: 8027 tighten up dsl_pool_dirty_delta

illumos/illumos-gate@313ae1e182
313ae1e182

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
This commit is contained in:
Andriy Gapon 2017-05-24 22:27:48 +00:00
commit 9fe5e04dfc
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=318830

View File

@ -559,7 +559,7 @@ dsl_pool_dirty_delta(dsl_pool_t *dp, int64_t delta)
* 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);
}