2012-12-11 02:56:08

by Tao Ma

[permalink] [raw]
Subject: [PATCH] ext4: Use kzalloc instead of empty_zero_page because of SPARC build error.

From: Tao Ma <[email protected]>

Build rebot found this error:

config: make ARCH=sparc allyesconfig

All error/warnings:

fs/ext4/inline.c: In function 'ext4_create_inline_data':
fs/ext4/inline.c:268:19: error: 'empty_zero_page' undeclared (first use in this function)
fs/ext4/inline.c:268:19: note: each undeclared identifier is reported only once for each function it appears in
fs/ext4/inline.c: At top level:
fs/ext4/inline.c:164:12: warning: 'ext4_read_inline_data' defined but not used [-Wunused-function]

In sparc, it seems that we don't have empty_zero_page, so replace it
with kzalloc and kfree to make sparc happy and make any future architecture
build successfully by not using empty_zero_page at all.

Cc: "Theodore Ts'o" <[email protected]>
Signed-off-by: Tao Ma <[email protected]>
---
fs/ext4/inline.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c
index 6b600b4..997c1aa 100644
--- a/fs/ext4/inline.c
+++ b/fs/ext4/inline.c
@@ -263,8 +263,10 @@ static int ext4_create_inline_data(handle_t *handle,
goto out;

if (len > EXT4_MIN_INLINE_DATA_SIZE) {
- value = (void *)empty_zero_page;
len -= EXT4_MIN_INLINE_DATA_SIZE;
+ value = kzalloc(len, GFP_NOFS);
+ if (!value)
+ goto out;
} else {
value = "";
len = 0;
@@ -275,6 +277,8 @@ static int ext4_create_inline_data(handle_t *handle,
i.value_len = len;

error = ext4_xattr_ibody_find(inode, &i, &is);
+ if (len)
+ kfree(value);
if (error)
goto out;

--
1.7.0.4