Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d8df0833 authored by Jaegeuk Kim's avatar Jaegeuk Kim Committed by Jaegeuk Kim
Browse files

f2fs: keep quota data on write_begin failure



This patch avoids some unnecessary locks for quota files when write_begin
fails.

Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent d84d652d
Loading
Loading
Loading
Loading
+4 −2
Original line number Original line Diff line number Diff line
@@ -2600,13 +2600,15 @@ static void f2fs_write_failed(struct address_space *mapping, loff_t to)
	struct inode *inode = mapping->host;
	struct inode *inode = mapping->host;
	loff_t i_size = i_size_read(inode);
	loff_t i_size = i_size_read(inode);


	if (IS_NOQUOTA(inode))
		return;

	/* In the fs-verity case, f2fs_end_enable_verity() does the truncate */
	/* In the fs-verity case, f2fs_end_enable_verity() does the truncate */
	if (to > i_size && !f2fs_verity_in_progress(inode)) {
	if (to > i_size && !f2fs_verity_in_progress(inode)) {
		down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
		down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
		down_write(&F2FS_I(inode)->i_mmap_sem);
		down_write(&F2FS_I(inode)->i_mmap_sem);


		truncate_pagecache(inode, i_size);
		truncate_pagecache(inode, i_size);
		if (!IS_NOQUOTA(inode))
		f2fs_truncate_blocks(inode, i_size, true);
		f2fs_truncate_blocks(inode, i_size, true);


		up_write(&F2FS_I(inode)->i_mmap_sem);
		up_write(&F2FS_I(inode)->i_mmap_sem);