static void brelse_free(struct btree *btree, struct buffer_head *buffer) { struct sb *sb = btree->sb; block_t block = bufindex(buffer); if (bufcount(buffer) != 1) { warn("free block %Lx still in use!", (L)bufindex(buffer)); brelse(buffer); assert(bufcount(buffer) == 0); return; } brelse(buffer); (btree->ops->bfree)(sb, block, 1); set_buffer_empty(buffer); // free it!!! (and need a buffer free state) }
/* unused */ void show_cursor(struct cursor *cursor, int depth) { printf(">>> cursor %p/%i:", cursor, depth); for (int i = 0; i < depth; i++) printf(" [%Lx/%i]", (L)bufindex(cursor->path[i].buffer), bufcount(cursor->path[i].buffer)); printf("\n"); }
/* unused */ void show_cursor(struct cursor *cursor, int depth) { __tux3_dbg(">>> cursor %p/%i:", cursor, depth); for (int i = 0; i < depth; i++) { __tux3_dbg(" [%Lx/%i]", bufindex(cursor->path[i].buffer), bufcount(cursor->path[i].buffer)); } __tux3_dbg("\n"); }
/* unused */ void show_cursor(struct cursor *cursor, int depth) { if(DEBUG_MODE_K==1) { printf("\t\t\t\t%25s[K] %25s %4d #in\n",__FILE__,__func__,__LINE__); } __tux3_dbg(">>> cursor %p/%i:", cursor, depth); for (int i = 0; i < depth; i++) { __tux3_dbg(" [%Lx/%i]", bufindex(cursor->path[i].buffer), bufcount(cursor->path[i].buffer)); } __tux3_dbg("\n"); }