compel: add io_destroy syscall

The restorer already has io_setup, io_submit, and io_getevents
syscall wrappers for all supported architectures. Native AIO restore
also needs io_destroy to release the AIO context before leaving the
restorer path.

Add the missing io_destroy syscall entries next to the existing
native AIO syscalls.

Assisted-by: Claude:claude-sonnet-4-6
Signed-off-by: Dan Feigin <dfeigin@nvidia.com>
This commit is contained in:
Dan Feigin 2026-04-26 14:29:01 +03:00 committed by Andrei Vagin
parent 4d76d1acdc
commit 1cb90031d9
8 changed files with 8 additions and 0 deletions

View file

@ -103,6 +103,7 @@ mkdirat 34 323 (int dirfd, const char *pathname, mode_t mode)
unlinkat 35 328 (int dirfd, const char *pathname, int flags)
memfd_create 279 385 (const char *name, unsigned int flags)
io_setup 0 243 (unsigned nr_events, aio_context_t *ctx)
io_destroy 1 244 (aio_context_t ctx)
io_submit 2 246 (aio_context_t ctx_id, long nr, struct iocb **iocbpp)
io_getevents 4 245 (aio_context_t ctx, long min_nr, long nr, struct io_event *evs, struct timespec *tmo)
seccomp 277 383 (unsigned int op, unsigned int flags, const char *uargs)

View file

@ -6,6 +6,7 @@
# __NR_name code name arguments
# -------------------------------------------------------------------------------------------------------------------------------------------------------------
__NR_io_setup 0 sys_io_setup (unsigned nr_events, aio_context_t *ctx)
__NR_io_destroy 1 sys_io_destroy (aio_context_t ctx)
__NR_io_submit 2 sys_io_submit (aio_context_t ctx, long nr, struct iocb **iocbpp)
__NR_io_getevents 4 sys_io_getevents (aio_context_t ctx, long min_nr, long nr, struct io_event *evs, struct timespec *tmo)
__NR_fcntl 25 sys_fcntl (int fd, int type, long arg)

View file

@ -75,6 +75,7 @@ __NR_gettid 5178 sys_gettid (void)
__NR_futex 5194 sys_futex (uint32_t *uaddr, int op, uint32_t val, struct timespec *utime, uint32_t *uaddr2, uint32_t val3)
__NR_cacheflush 5197 sys_cacheflush (char *addr, int nbytes, int cache)
__NR_io_setup 5200 sys_io_setup (unsigned nr_events, aio_context_t *ctx)
__NR_io_destroy 5201 sys_io_destroy (aio_context_t ctx)
__NR_io_getevents 5202 sys_io_getevents (aio_context_t ctx, long min_nr, long nr, struct io_event *evs, struct timespec *tmo)
__NR_io_submit 5203 sys_io_submit (aio_context_t ctx, long nr, struct iocb **iocbpp)
__NR_set_tid_address 5212 sys_set_tid_address (int *tid_addr)

View file

@ -101,6 +101,7 @@ __NR_kcmp 354 sys_kcmp (pid_t pid1, pid_t pid2, int type, unsigned long idx1,
__NR_seccomp 358 sys_seccomp (unsigned int op, unsigned int flags, const char *uargs)
__NR_memfd_create 360 sys_memfd_create (const char *name, unsigned int flags)
__NR_io_setup 227 sys_io_setup (unsigned nr_events, aio_context_t *ctx_idp)
__NR_io_destroy 228 sys_io_destroy (aio_context_t ctx)
__NR_io_getevents 229 sys_io_getevents (aio_context_t ctx_id, long min_nr, long nr, struct io_event *events, struct timespec *timeout)
__NR_io_submit 230 sys_io_submit (aio_context_t ctx_id, long nr, struct iocb **iocbpp)
__NR_ipc 117 sys_ipc (unsigned int call, int first, unsigned long second, unsigned long third, const void *ptr, long fifth)

View file

@ -103,6 +103,7 @@ mkdirat 34 323 (int dirfd, const char *pathname, mode_t mode)
unlinkat 35 328 (int dirfd, const char *pathname, int flags)
memfd_create 279 385 (const char *name, unsigned int flags)
io_setup 0 243 (unsigned nr_events, aio_context_t *ctx)
io_destroy 1 244 (aio_context_t ctx)
io_submit 2 246 (aio_context_t ctx_id, long nr, struct iocb **iocbpp)
io_getevents 4 245 (aio_context_t ctx, long min_nr, long nr, struct io_event *evs, struct timespec *tmo)
seccomp 277 383 (unsigned int op, unsigned int flags, const char *uargs)

View file

@ -101,6 +101,7 @@ __NR_kcmp 343 sys_kcmp (pid_t pid1, pid_t pid2, int type, unsigned long idx1,
__NR_seccomp 348 sys_seccomp (unsigned int op, unsigned int flags, const char *uargs)
__NR_memfd_create 350 sys_memfd_create (const char *name, unsigned int flags)
__NR_io_setup 243 sys_io_setup (unsigned nr_events, aio_context_t *ctx_idp)
__NR_io_destroy 244 sys_io_destroy (aio_context_t ctx)
__NR_io_getevents 245 sys_io_getevents (aio_context_t ctx_id, long min_nr, long nr, struct io_event *events, struct timespec *timeout)
__NR_io_submit 246 sys_io_submit (aio_context_t ctx_id, long nr, struct iocb **iocbpp)
__NR_ipc 117 sys_ipc (unsigned int call, int first, unsigned long second, unsigned long third, const void *ptr, long fifth)

View file

@ -66,6 +66,7 @@ __NR_futex 240 sys_futex (uint32_t *uaddr, int op, uint32_t val, struct times
__NR_set_thread_area 243 sys_set_thread_area (user_desc_t *info)
__NR_get_thread_area 244 sys_get_thread_area (user_desc_t *info)
__NR_io_setup 245 sys_io_setup (unsigned nr_reqs, aio_context_t *ctx32p)
__NR_io_destroy 246 sys_io_destroy (aio_context_t ctx)
__NR_io_getevents 247 sys_io_getevents (aio_context_t ctx_id, long min_nr, long nr, struct io_event *events, struct timespec *timeout)
__NR_io_submit 248 sys_io_submit (aio_context_t ctx_id, long nr, struct iocb **iocbpp)
__NR_exit_group 252 sys_exit_group (int error_code)

View file

@ -75,6 +75,7 @@ __NR_gettid 186 sys_gettid (void)
__NR_futex 202 sys_futex (uint32_t *uaddr, int op, uint32_t val, struct timespec *utime, uint32_t *uaddr2, uint32_t val3)
__NR_set_thread_area 205 sys_set_thread_area (user_desc_t *info)
__NR_io_setup 206 sys_io_setup (unsigned nr_events, aio_context_t *ctx)
__NR_io_destroy 207 sys_io_destroy (aio_context_t ctx)
__NR_io_getevents 208 sys_io_getevents (aio_context_t ctx, long min_nr, long nr, struct io_event *evs, struct timespec *tmo)
__NR_io_submit 209 sys_io_submit (aio_context_t ctx, long nr, struct iocb **iocbpp)
__NR_get_thread_area 211 sys_get_thread_area (user_desc_t *info)