From a9bc3a175deafa35e1eb214076be22add129360d Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 19 Jan 2023 00:49:42 +0100 Subject: [PATCH] Add logging to ext4_mkfs. --- blockdev/linux/file_dev.c | 4 ++++ src/ext4_blockdev.c | 2 ++ src/ext4_mkfs.c | 29 +++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+) diff --git a/blockdev/linux/file_dev.c b/blockdev/linux/file_dev.c index 4e4cc67..79f9d69 100644 --- a/blockdev/linux/file_dev.c +++ b/blockdev/linux/file_dev.c @@ -149,16 +149,20 @@ static void drop_cache(void) 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; diff --git a/src/ext4_blockdev.c b/src/ext4_blockdev.c index c01093a..fba79e4 100644 --- a/src/ext4_blockdev.c +++ b/src/ext4_blockdev.c @@ -78,10 +78,12 @@ static int ext4_bdif_bread(struct ext4_blockdev *bdev, void *buf, static int ext4_bdif_bwrite(struct ext4_blockdev *bdev, const void *buf, uint64_t blk_id, uint32_t blk_cnt) { + ext4_dbg(DEBUG_BLOCKDEV, DBG_NONE "Writing blk_id=%lu cnt=%d", blk_id, blk_cnt); ext4_bdif_lock(bdev); int r = bdev->bdif->bwrite(bdev, buf, blk_id, blk_cnt); bdev->bdif->bwrite_ctr++; ext4_bdif_unlock(bdev); + ext4_dbg(DEBUG_BLOCKDEV, DBG_NONE "Result was %d", r); return r; } diff --git a/src/ext4_mkfs.c b/src/ext4_mkfs.c index 4765926..a2a1a34 100644 --- a/src/ext4_mkfs.c +++ b/src/ext4_mkfs.c @@ -317,6 +317,7 @@ static int write_bgroups(struct ext4_fs *fs, struct ext4_blockdev *bd, struct fs 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; @@ -375,6 +376,7 @@ static int write_bgroups(struct ext4_fs *fs, struct ext4_blockdev *bd, struct fs 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); } @@ -480,10 +482,12 @@ static int mkfs_init(struct ext4_fs *fs, struct ext4_blockdev *bd, struct ext4_m 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; @@ -665,6 +669,10 @@ int ext4_mkfs(struct ext4_fs *fs, struct ext4_blockdev *bd, { 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; @@ -771,16 +779,22 @@ int ext4_mkfs(struct ext4_fs *fs, struct ext4_blockdev *bd, 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; @@ -788,34 +802,49 @@ int ext4_mkfs(struct ext4_fs *fs, struct ext4_blockdev *bd, 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; -- 2.30.2