* [PATCH] xfs_db: pass the inode cluster offset when copying inodes
@ 2016-08-30 3:46 Darrick J. Wong
0 siblings, 0 replies; only message in thread
From: Darrick J. Wong @ 2016-08-30 3:46 UTC (permalink / raw)
To: Dave Chinner; +Cc: linux-xfs, xfs
In copy_inode_chunk, we try to determine whether or not an inode is
free as part of copying the inode records. The macros involved in
testing ir_free require both the inode record and the offset of an
inode within that chunk. Prior to sparse inode support, the loop
index "i" was also the inode chunk offset; however, when sparse
support was added, "i" became the inode offset within a cluster and
"ioff" became the inode cluster offset within an inode chunk.
Therefore, it is necessary to pass "ioff + i" to do the free-ness
calculation correctly.
This was discovered while trying to take metadumps of fs images for
scrub testing.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
---
db/metadump.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/db/metadump.c b/db/metadump.c
index e82b660..c769958 100644
--- a/db/metadump.c
+++ b/db/metadump.c
@@ -2292,7 +2292,7 @@ copy_inode_chunk(
/* process_inode handles free inodes, too */
if (!process_inode(agno, agino + ioff + i, dip,
- XFS_INOBT_IS_FREE_DISK(rp, i)))
+ XFS_INOBT_IS_FREE_DISK(rp, ioff + i)))
goto pop_out;
inodes_copied++;
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2016-08-30 3:46 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-30 3:46 [PATCH] xfs_db: pass the inode cluster offset when copying inodes 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;
as well as URLs for NNTP newsgroup(s).