2014-03-27 10:19:09

by Eryu Guan

[permalink] [raw]
Subject: [PATCH] libext2fs: fix build errors on bigendian hosts

Fix the following build errors on bigendian hosts.

- ctx is a pointer, use '->' not '.'
- add missing argument to ext2fs_dirent_swab_in2

make[2]: Entering directory `/root/e2fsprogs/lib/ext2fs'
CC inline_data.c
inline_data.c: In function ‘ext2fs_inline_data_dir_iterate’:
inline_data.c:221:5: error: request for member ‘errcode’ in something not a structure or union
ctx.errcode = ext2fs_dirent_swab_in2(fs, ctx->buf, ctx->buflen, 0);
^
inline_data.c:222:9: error: request for member ‘errcode’ in something not a structure or union
if (ctx.errcode) {
^
inline_data.c: In function ‘ext2fs_inline_data_dir_expand’:
inline_data.c:364:2: error: too few arguments to function ‘ext2fs_dirent_swab_in2’
retval = ext2fs_dirent_swab_in2(fs, buf, size);
^
In file included from inline_data.c:19:0:
ext2fs.h:1569:18: note: declared here
extern errcode_t ext2fs_dirent_swab_in2(ext2_filsys fs, char *buf, size_t size,
^
make[2]: *** [inline_data.o] Error 1

Cc: Theodore Ts'o <[email protected]>
Signed-off-by: Eryu Guan <[email protected]>
---
lib/ext2fs/inline_data.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/ext2fs/inline_data.c b/lib/ext2fs/inline_data.c
index 7be0f96..7a81da0 100644
--- a/lib/ext2fs/inline_data.c
+++ b/lib/ext2fs/inline_data.c
@@ -218,8 +218,8 @@ int ext2fs_inline_data_dir_iterate(ext2_filsys fs, ext2_ino_t ino,
ctx->buf = data.ea_data;
ctx->buflen = data.ea_size;
#ifdef WORDS_BIGENDIAN
- ctx.errcode = ext2fs_dirent_swab_in2(fs, ctx->buf, ctx->buflen, 0);
- if (ctx.errcode) {
+ ctx->errcode = ext2fs_dirent_swab_in2(fs, ctx->buf, ctx->buflen, 0);
+ if (ctx->errcode) {
ret |= BLOCK_ABORT;
goto out;
}
@@ -361,7 +361,7 @@ ext2fs_inline_data_dir_expand(ext2_filsys fs, ext2_ino_t ino,
return retval;

#ifdef WORDS_BIGENDIAN
- retval = ext2fs_dirent_swab_in2(fs, buf, size);
+ retval = ext2fs_dirent_swab_in2(fs, buf, size, 0);
if (retval)
goto errout;
#endif
--
1.9.0


2014-04-08 11:30:20

by Zheng Liu

[permalink] [raw]
Subject: Re: [PATCH] libext2fs: fix build errors on bigendian hosts

On Thu, Mar 27, 2014 at 06:17:24PM +0800, Eryu Guan wrote:
> Fix the following build errors on bigendian hosts.
>
> - ctx is a pointer, use '->' not '.'
> - add missing argument to ext2fs_dirent_swab_in2
>
> make[2]: Entering directory `/root/e2fsprogs/lib/ext2fs'
> CC inline_data.c
> inline_data.c: In function ‘ext2fs_inline_data_dir_iterate’:
> inline_data.c:221:5: error: request for member ‘errcode’ in something not a structure or union
> ctx.errcode = ext2fs_dirent_swab_in2(fs, ctx->buf, ctx->buflen, 0);
> ^
> inline_data.c:222:9: error: request for member ‘errcode’ in something not a structure or union
> if (ctx.errcode) {
> ^
> inline_data.c: In function ‘ext2fs_inline_data_dir_expand’:
> inline_data.c:364:2: error: too few arguments to function ‘ext2fs_dirent_swab_in2’
> retval = ext2fs_dirent_swab_in2(fs, buf, size);
> ^
> In file included from inline_data.c:19:0:
> ext2fs.h:1569:18: note: declared here
> extern errcode_t ext2fs_dirent_swab_in2(ext2_filsys fs, char *buf, size_t size,
> ^
> make[2]: *** [inline_data.o] Error 1
>
> Cc: Theodore Ts'o <[email protected]>
> Signed-off-by: Eryu Guan <[email protected]>

Sorry for the late reply, and thanks for fixing this.

Reviewed-by: Zheng Liu <[email protected]>

- Zheng

> ---
> lib/ext2fs/inline_data.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/lib/ext2fs/inline_data.c b/lib/ext2fs/inline_data.c
> index 7be0f96..7a81da0 100644
> --- a/lib/ext2fs/inline_data.c
> +++ b/lib/ext2fs/inline_data.c
> @@ -218,8 +218,8 @@ int ext2fs_inline_data_dir_iterate(ext2_filsys fs, ext2_ino_t ino,
> ctx->buf = data.ea_data;
> ctx->buflen = data.ea_size;
> #ifdef WORDS_BIGENDIAN
> - ctx.errcode = ext2fs_dirent_swab_in2(fs, ctx->buf, ctx->buflen, 0);
> - if (ctx.errcode) {
> + ctx->errcode = ext2fs_dirent_swab_in2(fs, ctx->buf, ctx->buflen, 0);
> + if (ctx->errcode) {
> ret |= BLOCK_ABORT;
> goto out;
> }
> @@ -361,7 +361,7 @@ ext2fs_inline_data_dir_expand(ext2_filsys fs, ext2_ino_t ino,
> return retval;
>
> #ifdef WORDS_BIGENDIAN
> - retval = ext2fs_dirent_swab_in2(fs, buf, size);
> + retval = ext2fs_dirent_swab_in2(fs, buf, size, 0);
> if (retval)
> goto errout;
> #endif
> --
> 1.9.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

2014-04-08 18:34:16

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH] libext2fs: fix build errors on bigendian hosts

On Tue, Apr 08, 2014 at 07:36:25PM +0800, Zheng Liu wrote:
> On Thu, Mar 27, 2014 at 06:17:24PM +0800, Eryu Guan wrote:
> > Fix the following build errors on bigendian hosts.

Thanks, applied.

- Ted