diff options
author | Chao Yu <yuchao0@huawei.com> | 2019-08-28 11:33:36 +0200 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2019-09-16 17:38:49 +0200 |
commit | 05e360061cbdcbfa93f8fcace2e7b53b2baed191 (patch) | |
tree | 30a8531f9ddf44a4b7ddef864d95477db532542c /fs/f2fs | |
parent | f2fs: fix extent corrupotion during directIO in LFS mode (diff) | |
download | linux-05e360061cbdcbfa93f8fcace2e7b53b2baed191.tar.xz linux-05e360061cbdcbfa93f8fcace2e7b53b2baed191.zip |
f2fs: fix to handle error path correctly in f2fs_map_blocks
In f2fs_map_blocks(), we should bail out once __allocate_data_block()
failed.
Fixes: f847c699cff3 ("f2fs: allow out-place-update for direct IO in LFS mode")
Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs')
-rw-r--r-- | fs/f2fs/data.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 7e9fafd44cbc..a3e2ce5a6b22 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -1195,10 +1195,10 @@ next_block: if (test_opt(sbi, LFS) && flag == F2FS_GET_BLOCK_DIO && map->m_may_create) { err = __allocate_data_block(&dn, map->m_seg_type); - if (!err) { - blkaddr = dn.data_blkaddr; - set_inode_flag(inode, FI_APPEND_WRITE); - } + if (err) + goto sync_out; + blkaddr = dn.data_blkaddr; + set_inode_flag(inode, FI_APPEND_WRITE); } } else { if (create) { |