This patch adds new members in inject_node to inject inode: * i_ext.fofs: extent fofs * i_ext.blk_addr: extent blk_addr * i_ext.len: extent len * i_inline_xattr_size: inline xattr size * i_compr_blocks: compression blocks
Signed-off-by: Sheng Yong <shengy...@oppo.com> --- fsck/inject.c | 28 ++++++++++++++++++++++++++++ man/inject.f2fs.8 | 12 ++++++++++++ 2 files changed, 40 insertions(+) diff --git a/fsck/inject.c b/fsck/inject.c index c997334ec57d..4a811b3a3302 100644 --- a/fsck/inject.c +++ b/fsck/inject.c @@ -197,8 +197,13 @@ static void inject_node_usage(void) MSG(0, " i_links: inject inode i_links\n"); MSG(0, " i_size: inject inode i_size\n"); MSG(0, " i_blocks: inject inode i_blocks\n"); + MSG(0, " i_ext.fofs: inject inode i_ext.fofs\n"); + MSG(0, " i_ext.blk_addr: inject inode i_ext.blk_addr\n"); + MSG(0, " i_ext.len: inject inode i_ext.len\n"); MSG(0, " i_extra_isize: inject inode i_extra_isize\n"); + MSG(0, " i_inline_xattr_size: inject inode i_inline_xattr_size\n"); MSG(0, " i_inode_checksum: inject inode i_inode_checksum\n"); + MSG(0, " i_compr_blocks: inject inode i_compr_blocks\n"); MSG(0, " i_addr: inject inode i_addr array selected by --idx <index>\n"); MSG(0, " i_nid: inject inode i_nid array selected by --idx <index>\n"); MSG(0, " addr: inject {in}direct node nid/addr array selected by --idx <index>\n"); @@ -877,16 +882,39 @@ static int inject_inode(struct f2fs_sb_info *sbi, struct f2fs_node *node, MSG(0, "Info: inject inode i_blocks of nid %u: %"PRIu64" -> %"PRIu64"\n", opt->nid, le64_to_cpu(inode->i_blocks), (u64)opt->val); inode->i_blocks = cpu_to_le64((u64)opt->val); + } else if (!strcmp(opt->mb, "i_ext.fofs")) { + MSG(0, "Info: inject inode i_ext.fofs of nid %u: %u -> %u\n", + opt->nid, le32_to_cpu(inode->i_ext.fofs), (u32)opt->val); + inode->i_ext.fofs = cpu_to_le32((u32)opt->val); + } else if (!strcmp(opt->mb, "i_ext.blk_addr")) { + MSG(0, "Info: inject inode i_ext.blk_addr of nid 0x%x: " + "0x%x -> 0x%x\n", opt->nid, + le32_to_cpu(inode->i_ext.blk_addr), (u32)opt->val); + inode->i_ext.blk_addr = cpu_to_le32((u32)opt->val); + } else if (!strcmp(opt->mb, "i_ext.len")) { + MSG(0, "Info: inject inode i_ext.len of nid %u: %u -> %u\n", + opt->nid, le32_to_cpu(inode->i_ext.len), (u32)opt->val); + inode->i_ext.len = cpu_to_le32((u32)opt->val); } else if (!strcmp(opt->mb, "i_extra_isize")) { /* do not care if F2FS_EXTRA_ATTR is enabled */ MSG(0, "Info: inject inode i_extra_isize of nid %u: %d -> %d\n", opt->nid, le16_to_cpu(inode->i_extra_isize), (u16)opt->val); inode->i_extra_isize = cpu_to_le16((u16)opt->val); + } else if (!strcmp(opt->mb, "i_inline_xattr_size")) { + MSG(0, "Info: inject inode i_inline_xattr_size of nid %u: " + "%d -> %d\n", opt->nid, + le16_to_cpu(inode->i_inline_xattr_size), (u16)opt->val); + inode->i_inline_xattr_size = cpu_to_le16((u16)opt->val); } else if (!strcmp(opt->mb, "i_inode_checksum")) { MSG(0, "Info: inject inode i_inode_checksum of nid %u: " "0x%x -> 0x%x\n", opt->nid, le32_to_cpu(inode->i_inode_checksum), (u32)opt->val); inode->i_inode_checksum = cpu_to_le32((u32)opt->val); + } else if (!strcmp(opt->mb, "i_compr_blocks")) { + MSG(0, "Info: inject inode i_compr_blocks of nid %u: " + "%lu -> %lu\n", opt->nid, + le64_to_cpu(inode->i_compr_blocks), (u64)opt->val); + inode->i_compr_blocks = cpu_to_le64((u64)opt->val); } else if (!strcmp(opt->mb, "i_addr")) { /* do not care if it is inline data */ if (opt->idx >= DEF_ADDRS_PER_INODE) { diff --git a/man/inject.f2fs.8 b/man/inject.f2fs.8 index 5196aa46699a..691a40c889a0 100644 --- a/man/inject.f2fs.8 +++ b/man/inject.f2fs.8 @@ -182,9 +182,21 @@ inode i_size. .BI i_blocks inode i_blocks. .TP +.BI i_ext.fofs +inode i_ext.fofs. +.TP +.BI i_ext.blk_addr +inode i_ext.blk_addr. +.TP +.BI i_ext.len +inode i_ext.len. +.TP .BI i_extra_isize inode i_extra_isize. .TP +.BI i_inline_xattr_size +inode i_inline_xattr_size. +.TP .BI i_inode_checksum inode i_inode_checksum. .TP -- 2.40.1 _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel