* [f2fs-dev] [PATCH] dump.f2fs: support dump version_bitmap and chksum in checkpoint
@ 2025-04-14 2:39 Chao Yu via Linux-f2fs-devel
2025-04-14 22:36 ` Jaegeuk Kim via Linux-f2fs-devel
0 siblings, 1 reply; 2+ messages in thread
From: Chao Yu via Linux-f2fs-devel @ 2025-04-14 2:39 UTC (permalink / raw)
To: jaegeuk; +Cc: linux-f2fs-devel
dump.f2fs -d 1 img
...
checksum [0x829fb462 : 2191504482]
nat_version_bitmap[0] [0x 0 : 0]
nat_version_bitmap[1] [0x 0 : 0]
nat_version_bitmap[2] [0x 0 : 0]
...
nat_version_bitmap[463] [0x 0 : 0]
sit_version_bitmap[0] [0x 0 : 0]
sit_version_bitmap[1] [0x 0 : 0]
sit_version_bitmap[2] [0x 0 : 0]
sit_version_bitmap[3] [0x 0 : 0]
...
sit_version_bitmap[47] [0x 0 : 0]
Signed-off-by: Chao Yu <chao@kernel.org>
---
fsck/mount.c | 31 ++++++++++++++++++++++++++++++-
1 file changed, 30 insertions(+), 1 deletion(-)
diff --git a/fsck/mount.c b/fsck/mount.c
index e7c4069..6648c69 100644
--- a/fsck/mount.c
+++ b/fsck/mount.c
@@ -563,6 +563,33 @@ printout:
printf("\n");
}
+void print_chksum(struct f2fs_checkpoint *cp)
+{
+ unsigned int crc = le32_to_cpu(*(__le32 *)((unsigned char *)cp +
+ get_cp(checksum_offset)));
+
+ printf("%-30s" "\t\t[0x%8x : %u]\n", "checksum", crc, crc);
+}
+
+void print_version_bitmap(struct f2fs_sb_info *sbi)
+{
+ char str[30];
+ int i, j;
+
+ for (i = NAT_BITMAP; i <= SIT_BITMAP; i++) {
+ unsigned int *bitmap = __bitmap_ptr(sbi, i);
+ unsigned int size = round_up(__bitmap_size(sbi, i), 4);
+
+ for (j = 0; j < size; j++) {
+ snprintf(str, 31, "%s[%d]", i == NAT_BITMAP ?
+ "nat_version_bitmap" :
+ "sit_version_bitmap", j);
+ printf("%-30s" "\t\t[0x%8x : %u]\n", str,
+ bitmap[i], bitmap[i]);
+ }
+ }
+}
+
void print_ckpt_info(struct f2fs_sb_info *sbi)
{
struct f2fs_checkpoint *cp = F2FS_CKPT(sbi);
@@ -618,7 +645,9 @@ printout:
DISP_u32(cp, checksum_offset);
DISP_u64(cp, elapsed_time);
- DISP_u32(cp, sit_nat_version_bitmap[0]);
+ print_chksum(cp);
+ print_version_bitmap(sbi);
+
printf("\n\n");
}
--
2.49.0
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [f2fs-dev] [PATCH] dump.f2fs: support dump version_bitmap and chksum in checkpoint
2025-04-14 2:39 [f2fs-dev] [PATCH] dump.f2fs: support dump version_bitmap and chksum in checkpoint Chao Yu via Linux-f2fs-devel
@ 2025-04-14 22:36 ` Jaegeuk Kim via Linux-f2fs-devel
0 siblings, 0 replies; 2+ messages in thread
From: Jaegeuk Kim via Linux-f2fs-devel @ 2025-04-14 22:36 UTC (permalink / raw)
To: Chao Yu; +Cc: linux-f2fs-devel
external/f2fs-tools/fsck/mount.c:584:4: error: 'snprintf' will always overflow; destination buffer has size 30, but size argument is 31 [-Werror,-Wbuiltin-memcpy-chk-size]
584 | snprintf(str, 31, "%s[%d]", i == NAT_BITMAP ?
On 04/14, Chao Yu wrote:
> dump.f2fs -d 1 img
>
> ...
> checksum [0x829fb462 : 2191504482]
> nat_version_bitmap[0] [0x 0 : 0]
> nat_version_bitmap[1] [0x 0 : 0]
> nat_version_bitmap[2] [0x 0 : 0]
> ...
> nat_version_bitmap[463] [0x 0 : 0]
> sit_version_bitmap[0] [0x 0 : 0]
> sit_version_bitmap[1] [0x 0 : 0]
> sit_version_bitmap[2] [0x 0 : 0]
> sit_version_bitmap[3] [0x 0 : 0]
> ...
> sit_version_bitmap[47] [0x 0 : 0]
>
> Signed-off-by: Chao Yu <chao@kernel.org>
> ---
> fsck/mount.c | 31 ++++++++++++++++++++++++++++++-
> 1 file changed, 30 insertions(+), 1 deletion(-)
>
> diff --git a/fsck/mount.c b/fsck/mount.c
> index e7c4069..6648c69 100644
> --- a/fsck/mount.c
> +++ b/fsck/mount.c
> @@ -563,6 +563,33 @@ printout:
> printf("\n");
> }
>
> +void print_chksum(struct f2fs_checkpoint *cp)
> +{
> + unsigned int crc = le32_to_cpu(*(__le32 *)((unsigned char *)cp +
> + get_cp(checksum_offset)));
> +
> + printf("%-30s" "\t\t[0x%8x : %u]\n", "checksum", crc, crc);
> +}
> +
> +void print_version_bitmap(struct f2fs_sb_info *sbi)
> +{
> + char str[30];
> + int i, j;
> +
> + for (i = NAT_BITMAP; i <= SIT_BITMAP; i++) {
> + unsigned int *bitmap = __bitmap_ptr(sbi, i);
> + unsigned int size = round_up(__bitmap_size(sbi, i), 4);
> +
> + for (j = 0; j < size; j++) {
> + snprintf(str, 31, "%s[%d]", i == NAT_BITMAP ?
> + "nat_version_bitmap" :
> + "sit_version_bitmap", j);
> + printf("%-30s" "\t\t[0x%8x : %u]\n", str,
> + bitmap[i], bitmap[i]);
> + }
> + }
> +}
> +
> void print_ckpt_info(struct f2fs_sb_info *sbi)
> {
> struct f2fs_checkpoint *cp = F2FS_CKPT(sbi);
> @@ -618,7 +645,9 @@ printout:
> DISP_u32(cp, checksum_offset);
> DISP_u64(cp, elapsed_time);
>
> - DISP_u32(cp, sit_nat_version_bitmap[0]);
> + print_chksum(cp);
> + print_version_bitmap(sbi);
> +
> printf("\n\n");
> }
>
> --
> 2.49.0
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-04-14 22:36 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-14 2:39 [f2fs-dev] [PATCH] dump.f2fs: support dump version_bitmap and chksum in checkpoint Chao Yu via Linux-f2fs-devel
2025-04-14 22:36 ` Jaegeuk Kim via Linux-f2fs-devel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).