/**@brief Journal.*/
struct jbd_journal jbd_journal;
+
+ /**@brief Block cache.*/
+ struct ext4_bcache bc;
};
/**@brief Block devices descriptor.*/
bsize = ext4_sb_get_block_size(&mp->fs.sb);
ext4_block_set_lb_size(bd, bsize);
-
- bc = ext4_malloc(sizeof(struct ext4_bcache));
+ bc = &mp->bc;
r = ext4_bcache_init_dynamic(bc, CONFIG_BLOCK_DEV_CACHE_SIZE, bsize);
if (r != EOK) {
- ext4_free(bc);
ext4_block_fini(bd);
return r;
}
ext4_bcache_cleanup(bc);
ext4_block_fini(bd);
ext4_bcache_fini_dynamic(bc);
- ext4_free(bc);
return r;
}
- bd->fs = &mp->fs;
+ bd->fs = &mp->fs;
return r;
}
ext4_bcache_cleanup(mp->fs.bdev->bc);
ext4_bcache_fini_dynamic(mp->fs.bdev->bc);
- ext4_free(mp->fs.bdev->bc);
+
r = ext4_block_fini(mp->fs.bdev);
Finish:
mp->fs.bdev->fs = NULL;