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

Commit fc0e15a6 authored by Eric Sandeen's avatar Eric Sandeen Committed by Theodore Ts'o
Browse files

Use zero_user_page() in ext4 where possible



Signed-off-by: default avatarEric Sandeen <sandeen@redhat.com>
Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
parent f8628a14
Loading
Loading
Loading
Loading
+2 −9
Original line number Diff line number Diff line
@@ -1766,7 +1766,6 @@ int ext4_block_truncate_page(handle_t *handle, struct page *page,
	struct inode *inode = mapping->host;
	struct buffer_head *bh;
	int err = 0;
	void *kaddr;

	blocksize = inode->i_sb->s_blocksize;
	length = blocksize - (offset & (blocksize - 1));
@@ -1778,10 +1777,7 @@ int ext4_block_truncate_page(handle_t *handle, struct page *page,
	 */
	if (!page_has_buffers(page) && test_opt(inode->i_sb, NOBH) &&
	     ext4_should_writeback_data(inode) && PageUptodate(page)) {
		kaddr = kmap_atomic(page, KM_USER0);
		memset(kaddr + offset, 0, length);
		flush_dcache_page(page);
		kunmap_atomic(kaddr, KM_USER0);
		zero_user_page(page, offset, length, KM_USER0);
		set_page_dirty(page);
		goto unlock;
	}
@@ -1834,10 +1830,7 @@ int ext4_block_truncate_page(handle_t *handle, struct page *page,
			goto unlock;
	}

	kaddr = kmap_atomic(page, KM_USER0);
	memset(kaddr + offset, 0, length);
	flush_dcache_page(page);
	kunmap_atomic(kaddr, KM_USER0);
	zero_user_page(page, offset, length, KM_USER0);

	BUFFER_TRACE(bh, "zeroed end of block");