summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGrzegorz Kostka <kostka.grzegorz@gmail.com>2017-02-17 13:44:05 +0100
committerGrzegorz Kostka <kostka.grzegorz@gmail.com>2017-02-17 13:49:14 +0100
commit803375001a1985ae323c86fa3f6f2c4eff14e1e9 (patch)
treee7f7f77d31b728d550370e03bcd7ec22cea2cbea /src
parent8321f180e635400137d052270e3c463a81738c1f (diff)
ext4: remove dynamic block cache allocation in ext4_mount
Diffstat (limited to 'src')
-rw-r--r--src/ext4.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/ext4.c b/src/ext4.c
index 3e8d045..956deb4 100644
--- a/src/ext4.c
+++ b/src/ext4.c
@@ -91,6 +91,9 @@ struct ext4_mountpoint {
/**@brief Journal.*/
struct jbd_journal jbd_journal;
+
+ /**@brief Block cache.*/
+ struct ext4_bcache bc;
};
/**@brief Block devices descriptor.*/
@@ -414,12 +417,10 @@ int ext4_mount(const char *dev_name, const char *mount_point,
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;
}
@@ -433,11 +434,10 @@ int ext4_mount(const char *dev_name, const char *mount_point,
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;
}
@@ -466,7 +466,7 @@ int ext4_umount(const char *mount_point)
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;