public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] xfs_db: take BB cluster offset into account when using 'type' cmd
@ 2022-04-19 12:19 Andrey Albershteyn
  2022-04-19 15:47 ` Darrick J. Wong
  0 siblings, 1 reply; 4+ messages in thread
From: Andrey Albershteyn @ 2022-04-19 12:19 UTC (permalink / raw)
  To: linux-xfs; +Cc: Andrey Albershteyn

Changing the interpretation type of data under the cursor moves the
cursor to the beginning of BB cluster. When cursor is set to an
inode the cursor is offset in BB buffer. However, this offset is not
considered when type of the data is changed - the cursor points to
the beginning of BB buffer. For example:

$ xfs_db -c "inode 131" -c "daddr" -c "type text" \
	-c "daddr" /dev/sdb1
current daddr is 131
current daddr is 128

Signed-off-by: Andrey Albershteyn <aalbersh@redhat.com>
---
 db/io.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/db/io.c b/db/io.c
index df97ed91..107f2e11 100644
--- a/db/io.c
+++ b/db/io.c
@@ -589,6 +589,7 @@ set_iocur_type(
 	const typ_t	*type)
 {
 	int		bb_count = 1;	/* type's size in basic blocks */
+	int boff = iocur_top->boff;
 
 	/*
 	 * Inodes are special; verifier checks all inodes in the chunk, the
@@ -613,6 +614,9 @@ set_iocur_type(
 		bb_count = BTOBB(byteize(fsize(type->fields,
 				       iocur_top->data, 0, 0)));
 	set_cur(type, iocur_top->bb, bb_count, DB_RING_IGN, NULL);
+	iocur_top->boff = boff;
+	iocur_top->off = ((xfs_off_t)iocur_top->bb << BBSHIFT) + boff;
+	iocur_top->data = (void *)((char *)iocur_top->buf + boff);
 }
 
 static void
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-04-19 17:11 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-04-19 12:19 [PATCH] xfs_db: take BB cluster offset into account when using 'type' cmd Andrey Albershteyn
2022-04-19 15:47 ` Darrick J. Wong
2022-04-19 16:56   ` Andrey Albershteyn
2022-04-19 17:10     ` Darrick J. Wong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox