dv->sb = NULL;
}
+ /* Final checkpoint will have cleared out the leafs lists,
+ * so they should all be empty.
+ */
/* Lets see what is on the 'leaf' list? */
for (i = 0; i < 2; i++) {
struct block *b;
/* FIXME this only OK for readonly mounts.
*/
getref(b, MKREF(release));
- if (test_and_clear_bit(B_Pinned, &b->flags)) {
+ lafs_refile(b, 0);
+ if (test_bit(B_Pinned, &b->flags)) {
/* didn't fix the pincnt !! */
printk("This was pinned: %s\n", strblk(b));
lafs_print_tree(b, 1);
BUG();
}
- /* FIXME must clean it out better e.g. return Credits */
putref(b, MKREF(release));
goto retry;
}
}
+ BUG_ON(!list_empty(&fs->clean_leafs));
flush_scheduled_work();
lafs_stop_cleaner(fs);