diff options
| author | Chao Yu <yuchao0@huawei.com> | 2016-10-11 22:57:06 +0800 |
|---|---|---|
| committer | Jaegeuk Kim <jaegeuk@google.com> | 2017-09-25 15:04:55 -0700 |
| commit | c675400f4a1149234ba1efeeb8a7d6df8a4bb880 (patch) | |
| tree | 3887460a173c25cd184bb62c8c78fe7f5e592cd8 | |
| parent | 1158df42b2c66b4c9f150615ae37a1cc7edb3c74 (diff) | |
f2fs: fix error handling in fsync_node_pages
commit 9de69279750e9740bc7221c7051a40c0516a58fb upstream.
In fsync_node_pages, if f2fs was taged with CP_ERROR_FLAG, make sure bio
cache was flushed before return.
Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
| -rw-r--r-- | fs/f2fs/node.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index 97eb2c0811b5..bc38e5a92b4b 100644 --- a/fs/f2fs/node.c +++ b/fs/f2fs/node.c @@ -1338,7 +1338,8 @@ retry: if (unlikely(f2fs_cp_error(sbi))) { f2fs_put_page(last_page, 0); pagevec_release(&pvec); - return -EIO; + ret = -EIO; + goto out; } if (!IS_DNODE(page) || !is_cold_node(page)) @@ -1411,7 +1412,7 @@ continue_unlock: unlock_page(last_page); goto retry; } - +out: if (nwritten) f2fs_submit_merged_bio_cond(sbi, NULL, NULL, ino, NODE, WRITE); return ret ? -EIO: 0; |
