Re: [PATCH] aio: don't expose __aio_sigset in uapi

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jul 11, 2018 at 03:48:46PM +0200, Christoph Hellwig wrote:
> 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@xxxxxx>
> Reported-by: Adrian Reber <adrian@xxxxxxxx>
> ---
>  fs/aio.c                     | 5 +++++
>  include/linux/syscalls.h     | 1 +
>  include/uapi/linux/aio_abi.h | 6 ------
>  3 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/fs/aio.c b/fs/aio.c
> index 210df9da1283..27454594e37a 100644
> --- a/fs/aio.c
> +++ b/fs/aio.c
> @@ -1896,6 +1896,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,
> diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
> index a368a68cb667..5c1a0933768e 100644
> --- a/include/linux/syscalls.h
> +++ b/include/linux/syscalls.h
> @@ -11,6 +11,7 @@
>  #ifndef _LINUX_SYSCALLS_H
>  #define _LINUX_SYSCALLS_H
>  
> +struct __aio_sigset;
>  struct epoll_event;
>  struct iattr;
>  struct inode;
> diff --git a/include/uapi/linux/aio_abi.h b/include/uapi/linux/aio_abi.h
> index 3c5038b587ba..d4593a6062ef 100644
> --- a/include/uapi/linux/aio_abi.h
> +++ b/include/uapi/linux/aio_abi.h
> @@ -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;
> @@ -110,10 +109,5 @@ struct iocb {
>  #undef IFBIG
>  #undef IFLITTLE
>  
> -struct __aio_sigset {
> -	const sigset_t __user	*sigmask;
> -	size_t		sigsetsize;
> -};
> -
>  #endif /* __LINUX__AIO_ABI_H */
>  
> -- 
> 2.18.0

Tested with CRIU, which was broken before, and it compiles again. Thanks!

		Adrian



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux