aboutsummaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk@kernel.org>2016-01-01 22:03:47 -0800
committerMister Oyster <oysterized@gmail.com>2017-04-13 12:32:46 +0200
commitf96b440f83ac0fc497d3c955bfcf9aa680110ab1 (patch)
tree0d6fe841248b4fb57764d11043394025410bd66c /fs
parentb45745e6a69332aed4ce4f72b97b5d88c5398323 (diff)
f2fs: check the page status filled from disk
After reading a page, we need to check whether there is any error. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/f2fs/data.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index e04f2fa96..788fc06ac 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -414,7 +414,7 @@ struct page *get_new_data_page(struct inode *inode,
struct page *page;
struct dnode_of_data dn;
int err;
-repeat:
+
page = f2fs_grab_cache_page(mapping, index, true);
if (!page) {
/*
@@ -443,12 +443,11 @@ repeat:
} else {
f2fs_put_page(page, 1);
- page = get_read_data_page(inode, index, READ_SYNC, true);
+ /* if ipage exists, blkaddr should be NEW_ADDR */
+ f2fs_bug_on(F2FS_I_SB(inode), ipage);
+ page = get_lock_data_page(inode, index, true);
if (IS_ERR(page))
- goto repeat;
-
- /* wait for read completion */
- lock_page(page);
+ return page;
}
got_it:
if (new_i_size && i_size_read(inode) <