The code for dumping files was ignoring i_extra_isize, leading to
invalid data for some inlined files after dumping. This swaps inode
dumping to use the common inline_data_addr function.

Signed-off-by: Daniel Rosenberg <[email protected]>
---
 fsck/dump.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fsck/dump.c b/fsck/dump.c
index 90e3e0e..8d5613e 100644
--- a/fsck/dump.c
+++ b/fsck/dump.c
@@ -479,7 +479,7 @@ static int dump_inode_blk(struct f2fs_sb_info *sbi, u32 nid,
        if ((node_blk->i.i_inline & F2FS_INLINE_DATA)) {
                DBG(3, "ino[0x%x] has inline data!\n", nid);
                /* recover from inline data */
-               dev_write_dump(((unsigned char *)node_blk) + INLINE_DATA_OFFSET,
+               dev_write_dump(inline_data_addr(node_blk),
                                                0, MAX_INLINE_DATA(node_blk));
                ret = -1;
                goto dump_xattr;

base-commit: c1a97862b05d8a736ad8719939395c61bd71c982
-- 
2.45.2.627.g7a2c4fd464-goog



_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to