Since `folio_detach_f2fs_private` can handle all case for a
folio to free it's private date , intergrate it as a subtitute
for `folio_detach_private`.

Signed-off-by: Nanzhe Zhao <nzz...@126.com>
---
 fs/f2fs/data.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index ed1174430827..415f51602492 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -3748,7 +3748,16 @@ void f2fs_invalidate_folio(struct folio *folio, size_t 
offset, size_t length)
                        f2fs_remove_dirty_inode(inode);
                }
        }
+#ifdef CONFIG_F2FS_IOMAP_FOLIO_STATE
+       /* Same to iomap_invalidate_folio*/
+       if (offset == 0 && length == folio_size(folio)) {
+               WARN_ON_ONCE(folio_test_writeback(folio));
+               folio_cancel_dirty(folio);
+               folio_detach_f2fs_private(folio);
+       }
+#else
        folio_detach_private(folio);
+#endif
 }
 
 bool f2fs_release_folio(struct folio *folio, gfp_t wait)
@@ -3757,7 +3766,11 @@ bool f2fs_release_folio(struct folio *folio, gfp_t wait)
        if (folio_test_dirty(folio))
                return false;
 
+#ifdef CONFIG_F2FS_IOMAP_FOLIO_STATE
+       folio_detach_f2fs_private(folio);
+#else
        folio_detach_private(folio);
+#endif
        return true;
 }
 
-- 
2.34.1



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to