DragonFlyBSD Kernel Audit
DF-0813 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/vfs/hammer2/hammer2_flush.c b/sys/vfs/hammer2/hammer2_flush.c
--- a/sys/vfs/hammer2/hammer2_flush.c
+++ b/sys/vfs/hammer2/hammer2_flush.c
@@ -400,9 +400,11 @@
 					"(actual parent %p)\n",
 					info.parent, chain, chain->parent);
 			}
-			hammer2_chain_drop(info.parent);
+			if (info.parent)
+				hammer2_chain_drop(info.parent);
 			info.parent = chain->parent;
-			hammer2_chain_ref(info.parent);
+			if (info.parent)
+				hammer2_chain_ref(info.parent);
 		}
 		if (hammer2_flush_core(&info, chain, flags) == 0)
 			break;