aio: don't expose __aio_sigset in uapi
glibc uses a different defintion of sigset_t than the kernel does,
and the current version would pull in both. To fix this just do not
expose the type at all - this somewhat mirrors pselect() where we
do not even have a type for the magic sigmask argument, but just
use pointer arithmetics.
Fixes: 7a074e96
("aio: implement io_pgetevents")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reported-by: Adrian Reber <adrian@lisas.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Родитель
c7e9075fb8
Коммит
9ba546c019
5
fs/aio.c
5
fs/aio.c
|
@ -2042,6 +2042,11 @@ SYSCALL_DEFINE5(io_getevents, aio_context_t, ctx_id,
|
|||
return ret;
|
||||
}
|
||||
|
||||
struct __aio_sigset {
|
||||
const sigset_t __user *sigmask;
|
||||
size_t sigsetsize;
|
||||
};
|
||||
|
||||
SYSCALL_DEFINE6(io_pgetevents,
|
||||
aio_context_t, ctx_id,
|
||||
long, min_nr,
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#ifndef _LINUX_SYSCALLS_H
|
||||
#define _LINUX_SYSCALLS_H
|
||||
|
||||
struct __aio_sigset;
|
||||
struct epoll_event;
|
||||
struct iattr;
|
||||
struct inode;
|
||||
|
|
|
@ -29,7 +29,6 @@
|
|||
|
||||
#include <linux/types.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/signal.h>
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
typedef __kernel_ulong_t aio_context_t;
|
||||
|
@ -108,10 +107,5 @@ struct iocb {
|
|||
#undef IFBIG
|
||||
#undef IFLITTLE
|
||||
|
||||
struct __aio_sigset {
|
||||
const sigset_t __user *sigmask;
|
||||
size_t sigsetsize;
|
||||
};
|
||||
|
||||
#endif /* __LINUX__AIO_ABI_H */
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче