This fixes lost i_inline flags during roll-forward.

Signed-off-by: Jaegeuk Kim <jaeg...@kernel.org>
---
 fs/f2fs/recovery.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/fs/f2fs/recovery.c b/fs/f2fs/recovery.c
index cbeef73bc4dd..2354f1e05e19 100644
--- a/fs/f2fs/recovery.c
+++ b/fs/f2fs/recovery.c
@@ -211,6 +211,15 @@ static void recover_inode(struct inode *inode, struct page 
*page)
 
        F2FS_I(inode)->i_advise = raw->i_advise;
 
+       if (raw->i_inline & F2FS_PIN_FILE)
+               set_inode_flag(inode, FI_PIN_FILE);
+       if (raw->i_inline & F2FS_DATA_EXIST)
+               set_inode_flag(inode, FI_DATA_EXIST);
+       else
+               clear_inode_flag(inode, FI_DATA_EXIST);
+       if (!(raw->i_inline & F2FS_INLINE_DOTS))
+               clear_inode_flag(inode, FI_INLINE_DOTS);
+
        if (file_enc_name(inode))
                name = "<encrypted>";
        else
-- 
2.15.0.531.g2ccb3012c9-goog

Reply via email to