The kernel enforced not to have compression and inline_data bits
together, but old kernel created files with them. Let's disable
compression in that case.

Signed-off-by: Jaegeuk Kim <[email protected]>
---
 fsck/fsck.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/fsck/fsck.c b/fsck/fsck.c
index 4b546aeff995..b1b6722566ef 100644
--- a/fsck/fsck.c
+++ b/fsck/fsck.c
@@ -712,7 +712,10 @@ void fsck_chk_inode_blk(struct f2fs_sb_info *sbi, u32 nid,
        int ret;
        u32 cluster_size = 1 << node_blk->i.i_log_cluster_size;
 
-       if (!compr_supported && compressed) {
+       if (!compressed)
+               goto check_next;
+
+       if (!compr_supported || (node_blk->i.i_inline & F2FS_INLINE_DATA)) {
                /*
                 * The 'compression' flag in i_flags affects the traverse of
                 * the node tree.  Thus, it must be fixed unconditionally
@@ -727,6 +730,7 @@ void fsck_chk_inode_blk(struct f2fs_sb_info *sbi, u32 nid,
                }
                i_flags &= ~F2FS_COMPR_FL;
        }
+check_next:
        memset(&child, 0, sizeof(child));
        child.links = 2;
        child.p_ino = nid;
-- 
2.37.0.rc0.104.g0611611a94-goog



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

Reply via email to