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

From: Theodore Y. Ts'o
Date: Wed Apr 01 2020 - 17:29:10 EST


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

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 { \