]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
f2fs: fix to handle error path correctly in f2fs_map_blocks
authorChao Yu <yuchao0@huawei.com>
Wed, 28 Aug 2019 09:33:36 +0000 (17:33 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 16 Sep 2019 15:38:49 +0000 (08:38 -0700)
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>
fs/f2fs/data.c

index 7e9fafd44cbcc758dd4950f1aea1a6008ff3b382..a3e2ce5a6b22908d769833f3a6fbb10ad77292ab 100644 (file)
@@ -1195,10 +1195,10 @@ int f2fs_map_blocks(struct inode *inode, struct f2fs_map_blocks *map,
                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) {