void testfs_put_inode_freemap(struct super_block *sb, int inode_nr) { assert(sb->inode_freemap); bitmap_unmark(sb->inode_freemap, inode_nr); testfs_write_inode_freemap(sb, inode_nr); assert(sb->sb.used_inode_count > 0); sb->sb.used_inode_count--; testfs_write_super_block(sb); }
/* return free inode number or negative value */ int testfs_get_inode_freemap(struct super_block *sb) { u_int32_t index; int ret; assert(sb->inode_freemap); ret = bitmap_alloc(sb->inode_freemap, &index); if (ret < 0) return ret; testfs_write_inode_freemap(sb, index); return index; }
/* release allocated inode */ void testfs_put_inode_freemap(struct super_block *sb, int inode_nr) { assert(sb->inode_freemap); bitmap_unmark(sb->inode_freemap, inode_nr); testfs_write_inode_freemap(sb, inode_nr); }