[Devel] [PATCH hci-8.1 v10 06/13] ve/aio: initialize aio fields in ve0
Konstantin Khorenko
khorenko at virtuozzo.com
Fri Sep 25 19:53:27 MSK 2026
From: Vladimir Riabchun <vladimir.riabchun at virtuozzo.com>
When aio_nr and aio_max_nr were moved into struct ve_struct,
ve_create() got per-VE defaults, but ve0 was left zero-initialized:
on the host aio_max_nr is 0, so io_setup() fails until
fs.aio-max-nr is raised by hand, and the zeroed aio_nr_lock
triggers a bad magic report with CONFIG_DEBUG_SPINLOCK.
Fixes: 3e96f90392f4a ("ve/fs/aio: aio_nr & aio_max_nr variables virtualization")
https://virtuozzo.atlassian.net/browse/VSTOR-135520
Signed-off-by: Vladimir Riabchun <vladimir.riabchun at virtuozzo.com>
Signed-off-by: Konstantin Khorenko <khorenko at virtuozzo.com>
---
kernel/ve/ve.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/kernel/ve/ve.c b/kernel/ve/ve.c
index d7546cd5fffaa..c4e5c000bc427 100644
--- a/kernel/ve/ve.c
+++ b/kernel/ve/ve.c
@@ -117,6 +117,11 @@ struct ve_struct ve0 = {
.nd_neigh_nr = ATOMIC_INIT(0),
.mnt_avail_nr = ATOMIC_INIT(INT_MAX),
.mnt_max_nr = INT_MAX,
+#ifdef CONFIG_AIO
+ .aio_nr_lock = __SPIN_LOCK_UNLOCKED(ve0.aio_nr_lock),
+ .aio_nr = 0,
+ .aio_max_nr = AIO_MAX_NR_DEFAULT,
+#endif
.meminfo_val = VE_MEMINFO_SYSTEM,
.umh_running_helpers = ATOMIC_INIT(0),
.umh_helpers_waitq = __WAIT_QUEUE_HEAD_INITIALIZER(ve0.umh_helpers_waitq),
--
2.43.0
More information about the Devel
mailing list