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
a524f8d6af
commit
33fa3985a9
|
@ -1662,7 +1662,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