blk-wbt: remove WARN_ON_ONCE from wbt_init_enable_default()
PATCH v2 1/1 blk-wbt: remove WARN_ON_ONCE from wbt_init_enable_default()
wbt_init_enable_default() uses WARN_ON_ONCE to check for failures from wbt_alloc() and wbt_init(). However, both are expected failure paths:
- wbt_alloc() can return NULL under memory pressure (-ENOMEM)
- wbt_init() can fail with -EBUSY if wbt is already registered
syzbot triggers this by injecting memory allocation failures during MTD partition creation via ioctl(BLKPG), causing a spurious warning.
wbt_init_enable_default() is a best-effort initialization called from blk_register_queue() with a void return type. Failure simply means the disk operates without writeback throttling, which is harmless.
Replace WARN_ON_ONCE with plain if-checks, consistent with how wbt_set_lat() in the same file already handles these failures. Add a pr_warn() for the wbt_init() failure to retain diagnostic information without triggering a full stack trace.
---
Changes in v2:
- Add pr_warn() for wbt_init() failure as suggested by Yu Kuai
- Link to v1: https://lore.kernel.org/all/[email protected]/
--- block/blk-wbt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
block/blk-wbt.c +3 -2
@@ -782,10 +782,11 @@ void wbt_init_enable_default(struct gendisk *disk)return ; rwb =wbt_alloc (); -if (WARN_ON_ONCE (!rwb)) +if (!rwb)return ; -if (WARN_ON_ONCE (wbt_init (disk, rwb))) { +if (wbt_init (disk, rwb)) { +pr_warn ("%s: failed to enable wbt\n" , disk->disk_name);wbt_free (rwb);return ; }
Signature · 8 lines
2.50.1 Amazon Web Services EMEA SARL, 38 avenue John F. Kennedy, L-1855 Luxembourg, R.C.S. Luxembourg B186284 Amazon Web Services EMEA SARL, Irish Branch, One Burlington Plaza, Burlington Road, Dublin 4, Ireland, branch registration number 908705
Quoted 18 lines · Yuto Ohnuki
wbt_init_enable_default()usesWARN_ON_ONCEto check for failures fromwbt_alloc()andwbt_init(). However, both are expected failure paths:-
wbt_alloc()can return NULL under memory pressure (-ENOMEM)
-wbt_init()can fail with-EBUSYif wbt is already registeredsyzbot triggers this by injecting memory allocation failures during MTD partition creation via ioctl(BLKPG), causing a spurious warning.
wbt_init_enable_default()is a best-effort initialization called fromblk_register_queue()with a void return type. Failure simply means the disk operates without writeback throttling, which is harmless.Replace
WARN_ON_ONCEwith plain if-checks, consistent with howwbt_set_lat()in the same file already handles these failures. Add apr_warn()for thewbt_init()failure to retain diagnostic information without triggering a full stack trace.
Quoted 4 lines
Reported-by [email protected]Fixes 41afaeeda509 ("blk-wbt: fix possible deadlock to nest pcpu_alloc_mutex under q_usage_counter")Signed-off-by Yuto Ohnuki<[email protected]>
Looks good to me:
Quoted 22 lines · Yuto Ohnuki
wbt_init_enable_default()usesWARN_ON_ONCEto check for failures fromwbt_alloc()andwbt_init(). However, both are expected failure paths:-
wbt_alloc()can return NULL under memory pressure (-ENOMEM)
-wbt_init()can fail with-EBUSYif wbt is already registeredsyzbot triggers this by injecting memory allocation failures during MTD partition creation via ioctl(BLKPG), causing a spurious warning.
wbt_init_enable_default()is a best-effort initialization called fromblk_register_queue()with a void return type. Failure simply means the disk operates without writeback throttling, which is harmless.Replace
WARN_ON_ONCEwith plain if-checks, consistent with howwbt_set_lat()in the same file already handles these failures. Add apr_warn()for thewbt_init()failure to retain diagnostic information without triggering a full stack trace.Reported-by [email protected]Fixes 41afaeeda509 ("blk-wbt: fix possible deadlock to nest pcpu_alloc_mutex under q_usage_counter")Signed-off-by Yuto Ohnuki<[email protected]>
Quoted 7 lines
---
Changes in v2:
- Addpr_warn()forwbt_init()failure as suggested by Yu Kuai
- Link to v1:https://lore.kernel.org/all/[email protected]/--- block/blk-wbt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
Signature · 2 lines
Thansk, Kuai
Quoted 60 lines · Yuto Ohnuki
wbt_init_enable_default()usesWARN_ON_ONCEto check for failures fromwbt_alloc()andwbt_init(). However, both are expected failure paths:-
wbt_alloc()can return NULL under memory pressure (-ENOMEM)
-wbt_init()can fail with-EBUSYif wbt is already registeredsyzbot triggers this by injecting memory allocation failures during MTD partition creation via ioctl(BLKPG), causing a spurious warning.
wbt_init_enable_default()is a best-effort initialization called fromblk_register_queue()with a void return type. Failure simply means the disk operates without writeback throttling, which is harmless.Replace
WARN_ON_ONCEwith plain if-checks, consistent with howwbt_set_lat()in the same file already handles these failures. Add apr_warn()for thewbt_init()failure to retain diagnostic information without triggering a full stack trace.Reported-by [email protected]Fixes 41afaeeda509 ("blk-wbt: fix possible deadlock to nest pcpu_alloc_mutex under q_usage_counter")Signed-off-by Yuto Ohnuki <[email protected]>---
Changes in v2:
- Addpr_warn()forwbt_init()failure as suggested by Yu Kuai
- Link to v1: https://lore.kernel.org/all/[email protected]/--- block/blk-wbt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)block/blk-wbt.c +3
-2@@ -782,10 +782,11 @@ void wbt_init_enable_default(struct gendisk *disk)return ; rwb =wbt_alloc (); -if (WARN_ON_ONCE (!rwb)) +if (!rwb)return ; -if (WARN_ON_ONCE (wbt_init (disk, rwb))) { +if (wbt_init (disk, rwb)) { +pr_warn ("%s: failed to enable wbt\n" , disk->disk_name);wbt_free (rwb);return ; }Signature · 8 lines
2.50.1 Amazon Web Services EMEA SARL, 38 avenue John F. Kennedy, L-1855 Luxembourg, R.C.S. Luxembourg B186284 Amazon Web Services EMEA SARL, Irish Branch, One Burlington Plaza, Burlington Road, Dublin 4, Ireland, branch registration number 908705
Gentle ping on this patch.
It has a Reviewed-by from Nilay Shroff and Yu Kuai. Please let me know if there is anything else needed for this to be applied.
Thank you in advance,
Yuto
Amazon Web Services EMEA SARL, 38 avenue John F. Kennedy, L-1855 Luxembourg, R.C.S. Luxembourg B186284
Amazon Web Services EMEA SARL, Irish Branch, One Burlington Plaza, Burlington Road, Dublin 4, Ireland, branch registration number 908705
Quoted 10 lines · Yuto Ohnuki
wbt_init_enable_default()usesWARN_ON_ONCEto check for failures fromwbt_alloc()andwbt_init(). However, both are expected failure paths:-
wbt_alloc()can return NULL under memory pressure (-ENOMEM)
-wbt_init()can fail with-EBUSYif wbt is already registeredsyzbot triggers this by injecting memory allocation failures during MTD partition creation via ioctl(BLKPG), causing a spurious warning.
[...]
Applied, thanks!
[1/1] blk-wbt: remove WARN_ON_ONCE from wbt_init_enable_default()
commit: e9b004ff83067cdf96774b45aea4b239ace99a2f
Best regards,
Signature · 1 line
Jens Axboe