From: Chao Yu Date: Wed, 28 Aug 2019 09:33:36 +0000 (+0800) Subject: f2fs: fix to handle error path correctly in f2fs_map_blocks X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=05e360061cbdcbfa93f8fcace2e7b53b2baed191;p=linux.git 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 Signed-off-by: Jaegeuk Kim --- diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 7e9fafd44cbcc..a3e2ce5a6b229 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) {