From: Chris Mason Date: Fri, 15 Nov 2013 11:14:55 +0000 (+0100) Subject: btrfs: fix empty_zero_page misusage X-Git-Tag: upstream/snapshot3+hdmi~3791^2~27 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=46e0f66a0cf9e1fe25bfdcf4a60c08aface85998;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git btrfs: fix empty_zero_page misusage Heiko Carstens noticed that btrfs was using empty_zero_page incorrectly. He explained: The definition of empty_zero_page is architecture specific. It is (currently) either a character array, an unsigned long containing the address of the empty_zero_page, or even worse only the address of the struct page belonging to the empty_zero_page. This commit changes btrfs to use a for-loop instead. On x86 the resulting .ko is smaller, and we're no longer worrying about how each arch builds its zeros. Reported-by: Heiko Carstens Signed-off-by: Chris Mason --- diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index 1d04b55..64a0876 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -368,8 +368,13 @@ static noinline int btrfs_ioctl_fitrim(struct file *file, void __user *arg) int btrfs_is_empty_uuid(u8 *uuid) { - BUILD_BUG_ON(BTRFS_UUID_SIZE > PAGE_SIZE); - return !memcmp(uuid, empty_zero_page, BTRFS_UUID_SIZE); + int i; + + for (i = 0; i < BTRFS_UUID_SIZE; i++) { + if (uuid[i]) + return 0; + } + return 1; } static noinline int create_subvol(struct inode *dir,