svn commit: r358085 - head/sys/ufs/ffs

Kirk McKusick mckusick at FreeBSD.org
Tue Feb 18 23:56:24 UTC 2020


Author: mckusick
Date: Tue Feb 18 23:56:23 2020
New Revision: 358085
URL: https://svnweb.freebsd.org/changeset/base/358085

Log:
  Additional KASSERTs to ensure the consistency of the soft updates
  indirdep structure. No functional change.
  
  Tested by:    Peter Holm (as part of a larger patch)
  Sponsored by: Netflix

Modified:
  head/sys/ufs/ffs/ffs_softdep.c

Modified: head/sys/ufs/ffs/ffs_softdep.c
==============================================================================
--- head/sys/ufs/ffs/ffs_softdep.c	Tue Feb 18 21:36:54 2020	(r358084)
+++ head/sys/ufs/ffs/ffs_softdep.c	Tue Feb 18 23:56:23 2020	(r358085)
@@ -8224,8 +8224,13 @@ indir_trunc(freework, dbn, lbn)
 		 * If we're goingaway, free the indirdep.  Otherwise it will
 		 * linger until the write completes.
 		 */
-		if (goingaway)
+		if (goingaway) {
+			KASSERT(indirdep->ir_savebp == bp,
+			    ("indir_trunc: losing ir_savebp %p",
+			    indirdep->ir_savebp));
+			indirdep->ir_savebp = NULL;
 			free_indirdep(indirdep);
+		}
 	}
 	FREE_LOCK(ump);
 	/* Initialize pointers depending on block size. */
@@ -10739,6 +10744,8 @@ free_indirdep(indirdep)
 	    ("free_indirdep: %p still on newblk list.", indirdep));
 	KASSERT(indirdep->ir_saveddata == NULL,
 	    ("free_indirdep: %p still has saved data.", indirdep));
+	KASSERT(indirdep->ir_savebp == NULL,
+	    ("free_indirdep: %p still has savebp buffer.", indirdep));
 	if (indirdep->ir_state & ONWORKLIST)
 		WORKLIST_REMOVE(&indirdep->ir_list);
 	WORKITEM_FREE(indirdep, D_INDIRDEP);


More information about the svn-src-head mailing list