static int file_dev_bwrite(struct ext4_blockdev *bdev, const void *buf,
uint64_t blk_id, uint32_t blk_cnt)
{
+ printf("lseek() %ld\n", blk_id * bdev->bdif->ph_bsize);
if (lseek(dev_file, blk_id * bdev->bdif->ph_bsize, SEEK_SET) < 0) {
printf("fseeko failed %d\n", errno);
return EIO;
}
+ printf("lseek() ok\n");
if (!blk_cnt)
return EOK;
+ printf("write() %d\n", bdev->bdif->ph_bsize * blk_cnt);
if (write(dev_file, buf, bdev->bdif->ph_bsize * blk_cnt) < 0) {
printf("write failed %d\n", errno);
return EIO;
}
+ printf("write() ok\n");
drop_cache();
return EOK;
uint64_t sb_free_blk = 0;
for (uint32_t i = 0; i < aux_info->groups; i++) {
+ ext4_dbg(DEBUG_MKFS, DBG_NONE "Writing aux_info group %d of %d", i, aux_info->groups);
uint64_t bg_start_block = aux_info->first_data_block +
aux_info->first_data_block + i * info->blocks_per_group;
uint32_t blk_off = 0;
int r = EOK;
for (uint32_t i = 0; i < aux_info->groups; i++) {
+ ext4_dbg(DEBUG_MKFS, DBG_NONE "Writing block group header %d of %d", i, aux_info->groups);
if (progress) {
progress(progress_context, (float) i / aux_info->groups);
}
fill_sb(&aux_info, info);
memcpy(&fs->sb, aux_info.sb, sizeof(struct ext4_sblock));
+ ext4_dbg(DEBUG_MKFS, DBG_NONE "mkfs_init: write_bgroups");
r = write_bgroups(fs, bd, &aux_info, info, progress, progress_context);
if (r != EOK)
goto Finish;
+ ext4_dbg(DEBUG_MKFS, DBG_NONE "mkfs_init: write_sblocks");
r = write_sblocks(bd, &aux_info, info);
if (r != EOK)
goto Finish;
{
int r;
+ ext4_dbg(DEBUG_MKFS, DBG_NONE "ext4_mkfs start");
+
+ ext4_dbg(DEBUG_MKFS, DBG_NONE "ext4_block_init");
+
r = ext4_block_init(bd);
if (r != EOK)
return r;
memset(&bc, 0, sizeof(struct ext4_bcache));
ext4_block_set_lb_size(bd, info->block_size);
+ ext4_dbg(DEBUG_MKFS, DBG_NONE "ext4_bcache_init_dynamic");
+
r = ext4_bcache_init_dynamic(&bc, CONFIG_BLOCK_DEV_CACHE_SIZE,
info->block_size);
if (r != EOK)
goto block_fini;
+ ext4_dbg(DEBUG_MKFS, DBG_NONE "ext4_block_bind_bcache");
+
/*Bind block cache to block device*/
r = ext4_block_bind_bcache(bd, &bc);
if (r != EOK)
goto cache_fini;
+ ext4_dbg(DEBUG_MKFS, DBG_NONE "ext4_block_cache_write_back");
+
r = ext4_block_cache_write_back(bd, 1);
if (r != EOK)
goto cache_fini;
fs->bdev = bd;
fs->read_only = false;
+ ext4_dbg(DEBUG_MKFS, DBG_NONE "mkfs_init");
+
r = mkfs_init(fs, bd, info, progress, progress_context);
if (r != EOK)
goto cache_fini;
+ ext4_dbg(DEBUG_MKFS, DBG_NONE "ext4_fs_init");
+
r = ext4_fs_init(fs, bd, false);
if (r != EOK)
goto cache_fini;
+ ext4_dbg(DEBUG_MKFS, DBG_NONE "alloc_inodes");
+
r = alloc_inodes(fs);
if (r != EOK)
goto fs_fini;
+ ext4_dbg(DEBUG_MKFS, DBG_NONE "create_dirs");
+
r = create_dirs(fs);
if (r != EOK)
goto fs_fini;
+ ext4_dbg(DEBUG_MKFS, DBG_NONE "create_journal_inode");
+
r = create_journal_inode(fs, info);
if (r != EOK)
goto fs_fini;
fs_fini:
+ ext4_dbg(DEBUG_MKFS, DBG_NONE "ext4_fs_fini");
ext4_fs_fini(fs);
cache_fini:
+ ext4_dbg(DEBUG_MKFS, DBG_NONE "ext4_block_cache_write_back");
ext4_block_cache_write_back(bd, 0);
+
+ ext4_dbg(DEBUG_MKFS, DBG_NONE "ext4_bcache_fini_dynamic");
ext4_bcache_fini_dynamic(&bc);
block_fini:
+ ext4_dbg(DEBUG_MKFS, DBG_NONE "ext4_block_fini");
ext4_block_fini(bd);
return r;