summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChao Yu <yuchao0@huawei.com>2018-05-28 16:59:26 +0800
committerJaegeuk Kim <jaegeuk@kernel.org>2018-05-31 11:31:52 -0700
commit1174abfd8309f4c47d454734233aa3b694560e10 (patch)
tree4cc058372ad1149e31a5483a997a95809219070e
parent250dbf515192811025c4f3ba764a985f9b95be8e (diff)
downloadop-kernel-dev-1174abfd8309f4c47d454734233aa3b694560e10.zip
op-kernel-dev-1174abfd8309f4c47d454734233aa3b694560e10.tar.gz
f2fs: don't drop dentry pages after fs shutdown
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>
-rw-r--r--fs/f2fs/data.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 9d3e2e1..31c2edb 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -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;
}
OpenPOWER on IntegriCloud