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:
commit
9fe5e04dfc
@ -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);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user