Message ID | 20230405144453.930311-1-chao@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Commit | b851ee6ba3cc212641e622ebcf92b950c7bafa07 |
Headers | show |
Series | [f2fs-dev] f2fs: fix to check return value of f2fs_do_truncate_blocks() | expand |
Hello: This patch was applied to jaegeuk/f2fs.git (dev) by Jaegeuk Kim <jaegeuk@kernel.org>: On Wed, 5 Apr 2023 22:44:53 +0800 you wrote: > Otherwise, if truncation on cow_inode failed, remained data may > pollute current transaction of atomic write. > > Cc: Daeho Jeong <daehojeong@google.com> > Fixes: a46bebd502fe ("f2fs: synchronize atomic write aborts") > Signed-off-by: Chao Yu <chao@kernel.org> > > [...] Here is the summary with links: - [f2fs-dev] f2fs: fix to check return value of f2fs_do_truncate_blocks() https://git.kernel.org/jaegeuk/f2fs/c/b851ee6ba3cc You are awesome, thank you!
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index 10743e864d57..39c41c7e834b 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -2113,7 +2113,11 @@ static int f2fs_ioc_start_atomic_write(struct file *filp, bool truncate) clear_inode_flag(fi->cow_inode, FI_INLINE_DATA); } else { /* Reuse the already created COW inode */ - f2fs_do_truncate_blocks(fi->cow_inode, 0, true); + ret = f2fs_do_truncate_blocks(fi->cow_inode, 0, true); + if (ret) { + f2fs_up_write(&fi->i_gc_rwsem[WRITE]); + goto out; + } } f2fs_write_inode(inode, NULL);
Otherwise, if truncation on cow_inode failed, remained data may pollute current transaction of atomic write. Cc: Daeho Jeong <daehojeong@google.com> Fixes: a46bebd502fe ("f2fs: synchronize atomic write aborts") Signed-off-by: Chao Yu <chao@kernel.org> --- fs/f2fs/file.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)