ret++;
                        }
                }
+
+               f2fs_bug_on(F2FS_I_SB(inode),
+                       !compr && ret != cluster_size && !IS_IMMUTABLE(inode));
        }
 fail:
        f2fs_put_dnode(&dn);
        struct f2fs_sb_info *sbi = F2FS_I_SB(cc->inode);
        struct address_space *mapping = cc->inode->i_mapping;
        struct page *page;
-       struct dnode_of_data dn;
        sector_t last_block_in_bio;
        unsigned fgp_flag = FGP_LOCK | FGP_WRITE | FGP_CREAT;
        pgoff_t start_idx = start_idx_of_cluster(cc);
        int i, ret;
-       bool prealloc;
 
 retry:
        ret = f2fs_is_compressed_cluster(cc->inode, start_idx);
        if (ret <= 0)
                return ret;
 
-       /* compressed case */
-       prealloc = (ret < cc->cluster_size);
-
        ret = f2fs_init_compress_ctx(cc);
        if (ret)
                return ret;
                }
        }
 
-       if (prealloc) {
-               f2fs_do_map_lock(sbi, F2FS_GET_BLOCK_PRE_AIO, true);
-
-               set_new_dnode(&dn, cc->inode, NULL, NULL, 0);
-
-               for (i = cc->cluster_size - 1; i > 0; i--) {
-                       ret = f2fs_get_block(&dn, start_idx + i);
-                       if (ret) {
-                               i = cc->cluster_size;
-                               break;
-                       }
-
-                       if (dn.data_blkaddr != NEW_ADDR)
-                               break;
-               }
-
-               f2fs_do_map_lock(sbi, F2FS_GET_BLOCK_PRE_AIO, false);
-       }
-
        if (likely(!ret)) {
                *fsdata = cc->rpages;
                *pagep = cc->rpages[offset_in_cluster(cc, index)];