Re: [PATCH -next] ext4: Fix build error while CONFIG_PRINTK is n

From: Yuehaibing
Date: Wed Apr 01 2020 - 22:29:24 EST


On 2020/4/2 5:28, Theodore Y. Ts'o wrote:
> On Wed, Apr 01, 2020 at 03:30:38PM +0800, YueHaibing wrote:
>> fs/ext4/balloc.c: In function âext4_wait_block_bitmapâ:
>> fs/ext4/balloc.c:519:3: error: implicit declaration of function âext4_error_errâ; did you mean âext4_errorâ? [-Werror=implicit-function-declaration]
>> ext4_error_err(sb, EIO, "Cannot read block bitmap - "
>> ^~~~~~~~~~~~~~
>>
>> Add missing stub helper and fix ext4_abort.
>>
>> Reported-by: Hulk Robot <hulkci@xxxxxxxxxx>
>> Fixes: 2ea2fc775321 ("ext4: save all error info in save_error_info() and drop ext4_set_errno()")
>> Signed-off-by: YueHaibing <yuehaibing@xxxxxxxxxx>
>
> Thanks; the patch isn't quite correct, though. This is what I merged
> into my tree's version of the "save all error info..." commit.
>
> - Ted
>

Ok, good to know this and thansk!

> diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
> index eacd2f9cc833..91eb4381cae5 100644
> --- a/fs/ext4/ext4.h
> +++ b/fs/ext4/ext4.h
> @@ -2848,6 +2848,11 @@ do { \
> no_printk(fmt, ##__VA_ARGS__); \
> __ext4_error_inode(inode, "", 0, block, 0, " "); \
> } while (0)
> +#define ext4_error_inode_err(inode, func, line, block, err, fmt, ...) \
> +do { \
> + no_printk(fmt, ##__VA_ARGS__); \
> + __ext4_error_inode(inode, "", 0, block, err, " "); \
> +} while (0)
> #define ext4_error_file(file, func, line, block, fmt, ...) \
> do { \
> no_printk(fmt, ##__VA_ARGS__); \
> @@ -2858,10 +2863,15 @@ do { \
> no_printk(fmt, ##__VA_ARGS__); \
> __ext4_error(sb, "", 0, 0, 0, " "); \
> } while (0)
> -#define ext4_abort(sb, fmt, ...) \
> +#define ext4_error_err(sb, err, fmt, ...) \
> +do { \
> + no_printk(fmt, ##__VA_ARGS__); \
> + __ext4_error(sb, "", 0, err, 0, " "); \
> +} while (0)
> +#define ext4_abort(sb, err, fmt, ...) \
> do { \
> no_printk(fmt, ##__VA_ARGS__); \
> - __ext4_abort(sb, "", 0, " "); \
> + __ext4_abort(sb, "", 0, err, " "); \
> } while (0)
> #define ext4_warning(sb, fmt, ...) \
> do { \
>
> .
>