diff options
author | Chao Yu <yuchao0@huawei.com> | 2019-08-28 05:33:36 -0400 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2019-09-16 11:38:49 -0400 |
commit | 05e360061cbdcbfa93f8fcace2e7b53b2baed191 (patch) | |
tree | 30a8531f9ddf44a4b7ddef864d95477db532542c /fs/f2fs | |
parent | 86f35dc39ef9cdc5d33548e2d4ddac815a39e542 (diff) |
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: | |||
1195 | if (test_opt(sbi, LFS) && flag == F2FS_GET_BLOCK_DIO && | 1195 | if (test_opt(sbi, LFS) && flag == F2FS_GET_BLOCK_DIO && |
1196 | map->m_may_create) { | 1196 | map->m_may_create) { |
1197 | err = __allocate_data_block(&dn, map->m_seg_type); | 1197 | err = __allocate_data_block(&dn, map->m_seg_type); |
1198 | if (!err) { | 1198 | if (err) |
1199 | blkaddr = dn.data_blkaddr; | 1199 | goto sync_out; |
1200 | set_inode_flag(inode, FI_APPEND_WRITE); | 1200 | blkaddr = dn.data_blkaddr; |
1201 | } | 1201 | set_inode_flag(inode, FI_APPEND_WRITE); |
1202 | } | 1202 | } |
1203 | } else { | 1203 | } else { |
1204 | if (create) { | 1204 | if (create) { |