f2fs: allocate node blocks for atomic write block replacement
authorDaeho Jeong <daehojeong@google.com>
Tue, 18 Apr 2023 17:42:01 +0000 (10:42 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 24 Apr 2023 18:03:10 +0000 (11:03 -0700)
When a node block is missing for atomic write block replacement, we need
to allocate it in advance of the replacement.

Signed-off-by: Daeho Jeong <daehojeong@google.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/segment.c

index 641bd8c..6db410f 100644 (file)
@@ -217,7 +217,7 @@ static int __replace_atomic_write_block(struct inode *inode, pgoff_t index,
 
 retry:
        set_new_dnode(&dn, inode, NULL, NULL, 0);
-       err = f2fs_get_dnode_of_data(&dn, index, LOOKUP_NODE_RA);
+       err = f2fs_get_dnode_of_data(&dn, index, ALLOC_NODE);
        if (err) {
                if (err == -ENOMEM) {
                        f2fs_io_schedule_timeout(DEFAULT_IO_TIMEOUT);