f2fs: don't drop dentry pages after fs shutdown
authorChao Yu <yuchao0@huawei.com>
Mon, 28 May 2018 08:59:26 +0000 (16:59 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 31 May 2018 18:31:52 +0000 (11:31 -0700)
As description in commit "f2fs: don't drop any page on f2fs_cp_error()
case":

"We still provide readdir() after shtudown, so we should keep pages to
avoid additional IOs."

In order to provider lastest directory structure, let's keep dentry
pages in cache after fs shutdown.

Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/data.c

index 9d3e2e1c1e336f5833ca600c5b6085473e58da11..31c2edb217ec0124207b8f71423a6a39a313645c 100644 (file)
@@ -1801,6 +1801,12 @@ static int __write_data_page(struct page *page, bool *submitted,
        /* we should bypass data pages to proceed the kworkder jobs */
        if (unlikely(f2fs_cp_error(sbi))) {
                mapping_set_error(page->mapping, -EIO);
+               /*
+                * don't drop any dirty dentry pages for keeping lastest
+                * directory structure.
+                */
+               if (S_ISDIR(inode->i_mode))
+                       goto redirty_out;
                goto out;
        }