f2fs: fix to update new block address correctly for OPU
authorJia Zhu <zhujia13@huawei.com>
Mon, 26 Nov 2018 18:32:32 +0000 (02:32 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 27 Nov 2018 00:42:03 +0000 (16:42 -0800)
Previously, we allocated a new block address for OPU mode in direct_IO.

But the new address couldn't be assigned to @map->m_pblk correctly.

This patch fix it.

Cc: <stable@vger.kernel.org>
Fixes: 511f52d02f05 ("f2fs: allow out-place-update for direct IO in LFS mode")
Signed-off-by: Jia Zhu <zhujia13@huawei.com>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/data.c

index 8780f3d..3b7ccb3 100644 (file)
@@ -1089,8 +1089,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)
+                       if (!err) {
+                               blkaddr = dn.data_blkaddr;
                                set_inode_flag(inode, FI_APPEND_WRITE);
+                       }
                }
        } else {
                if (create) {