Skip to content

Commit

Permalink
f2fs: Revert "f2fs: truncate blocks in batch in __complete_revoke_lis…
Browse files Browse the repository at this point in the history
…t()"

commit c7dbc06 upstream.

We should not truncate replaced blocks, and were supposed to truncate the first
part as well.

This reverts commit 78a99fe.

Cc: stable@vger.kernel.org
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Jaegeuk Kim authored and gregkh committed Mar 10, 2023

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
1 parent eb52f13 commit f7e2861
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions fs/f2fs/segment.c
Original file line number Diff line number Diff line change
@@ -262,19 +262,24 @@ static void __complete_revoke_list(struct inode *inode, struct list_head *head,
bool revoke)
{
struct revoke_entry *cur, *tmp;
pgoff_t start_index = 0;
bool truncate = is_inode_flag_set(inode, FI_ATOMIC_REPLACE);

list_for_each_entry_safe(cur, tmp, head, list) {
if (revoke)
if (revoke) {
__replace_atomic_write_block(inode, cur->index,
cur->old_addr, NULL, true);
} else if (truncate) {
f2fs_truncate_hole(inode, start_index, cur->index);
start_index = cur->index + 1;
}

list_del(&cur->list);
kmem_cache_free(revoke_entry_slab, cur);
}

if (!revoke && truncate)
f2fs_do_truncate_blocks(inode, 0, false);
f2fs_do_truncate_blocks(inode, start_index * PAGE_SIZE, false);
}

static int __f2fs_commit_atomic_write(struct inode *inode)

0 comments on commit f7e2861

Please sign in to comment.