summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Behlendorf <behlendorf1@llnl.gov>2021-11-10 16:14:32 -0800
committerTony Hutter <hutter2@llnl.gov>2021-11-05 09:45:04 -0700
commitd7e640cf95f72deeca501d34afed59a0bc9d7940 (patch)
tree0f7c34f563d369d9a0d4ff8821858d3a8c5efd26
parent664d487a5dbd758216ac613934a4080fcc1de347 (diff)
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
-rw-r--r--module/zfs/dnode.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/module/zfs/dnode.c b/module/zfs/dnode.c
index 572d88ec2..7044c1fc6 100644
--- a/module/zfs/dnode.c
+++ b/module/zfs/dnode.c
@@ -1657,7 +1657,7 @@ dnode_is_dirty(dnode_t *dn)
mutex_enter(&dn->dn_mtx);
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);
return (B_TRUE);
}