[PATCH 12/21] blkiomon: read 'magic' first
From: Johannes Thumshirn <hidden>
Date: 2025-09-09 11:08:23
Also in:
linux-block, lkml
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Johannes Thumshirn <hidden>
Date: 2025-09-09 11:08:23
Also in:
linux-block, lkml
Subsystem:
the rest · Maintainer:
Linus Torvalds
Similar to blkparse, read the 'magic' portion of 'struct blk_io_trace' first when reading the trace. This is a preparation of supporting multiple trace protocol versions. Signed-off-by: Johannes Thumshirn <redacted> --- blkiomon.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/blkiomon.c b/blkiomon.c
index f8b0c9d..05f2d00 100644
--- a/blkiomon.c
+++ b/blkiomon.c@@ -460,19 +460,28 @@ static int blkiomon_do_fifo(void) bit = &t->bit; while (up) { + __u32 magic; + + if (fread(&magic, sizeof(magic), 1, ifp) != 1) { + if (!feof(ifp)) + fprintf(stderr, + "blkiomon: could not read trace"); + break; + } if (fread(bit, sizeof(*bit), 1, ifp) != 1) { if (!feof(ifp)) fprintf(stderr, "blkiomon: could not read trace"); break; } + bit->magic = magic; if (ferror(ifp)) { clearerr(ifp); fprintf(stderr, "blkiomon: error while reading trace"); break; } - if (data_is_native == -1 && check_data_endianness(bit->magic)) { + if (data_is_native == -1 && check_data_endianness(magic)) { fprintf(stderr, "blkiomon: endianess problem\n"); break; }
--
2.51.0