diff options
author | Chao Yu <yuchao0@huawei.com> | 2019-08-28 17:33:36 +0800 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2019-09-16 08:38:49 -0700 |
commit | 05e360061cbdcbfa93f8fcace2e7b53b2baed191 (patch) | |
tree | 30a8531f9ddf44a4b7ddef864d95477db532542c /fs | |
parent | 86f35dc39ef9cdc5d33548e2d4ddac815a39e542 (diff) | |
download | lwn-05e360061cbdcbfa93f8fcace2e7b53b2baed191.tar.gz lwn-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')
-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) { |