Restore dirty dnode detection logic
In addition to flushing memory mapped regions when checking holes,
commit de198f2d95
modified the dirty dnode detection logic to check
the dn->dn_dirty_records instead of the dn->dn_dirty_link. Relying
on the dirty record has not be reliable, switch back to the previous
method.
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #11900
Closes #12745
This commit is contained in:
parent
664d487a5d
commit
d7e640cf95
|
@ -1657,7 +1657,7 @@ dnode_is_dirty(dnode_t *dn)
|
||||||
mutex_enter(&dn->dn_mtx);
|
mutex_enter(&dn->dn_mtx);
|
||||||
|
|
||||||
for (int i = 0; i < TXG_SIZE; i++) {
|
for (int i = 0; i < TXG_SIZE; i++) {
|
||||||
if (list_head(&dn->dn_dirty_records[i]) != NULL) {
|
if (multilist_link_active(&dn->dn_dirty_link[i])) {
|
||||||
mutex_exit(&dn->dn_mtx);
|
mutex_exit(&dn->dn_mtx);
|
||||||
return (B_TRUE);
|
return (B_TRUE);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue