DF-2649 / fix.diff
--- a/sys/vfs/hammer2/hammer2_bulkfree.c +++ b/sys/vfs/hammer2/hammer2_bulkfree.c @@ -138,6 +138,19 @@ } /* + * DF-2649: a pure I/O error while resolving the parent leaves + * chain->data == NULL with a non-CHECK error (and a zero data_off + * can leave it NULL with no error at all). We can neither + * traverse nor print such a chain - its block table was never + * read - so skip it instead of dereferencing parent->data in the + * PFSROOT kprintf()s below. + */ + if (parent->data == NULL) { + error = parent->error | HAMMER2_ERROR_EIO; + goto done; + } + + /* * Report which PFS is being scanned */ if (parent->bref.type == HAMMER2_BREF_TYPE_INODE && |