From eff36099c12e936a880c9f2e102b9cf8a7166d40 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 8 Apr 2012 20:11:53 +0200 Subject: s3: Move the aio signal init to the vfs module On platforms that don't have an RT signal space, signal initialization fails. aio_fork and aio_pthread don't need the signal, so this would block them from running as well. --- source3/modules/vfs_default.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'source3/modules') diff --git a/source3/modules/vfs_default.c b/source3/modules/vfs_default.c index 915eae67d3..dd5441740a 100644 --- a/source3/modules/vfs_default.c +++ b/source3/modules/vfs_default.c @@ -2059,6 +2059,10 @@ static int vfswrap_fsetxattr(struct vfs_handle_struct *handle, struct files_stru static int vfswrap_aio_read(struct vfs_handle_struct *handle, struct files_struct *fsp, SMB_STRUCT_AIOCB *aiocb) { int ret; + if (!initialize_async_io_handler()) { + errno = ENOSYS; + return -1; + } /* * aio_read must be done as root, because in the glibc aio * implementation the helper thread needs to be able to send a signal @@ -2074,6 +2078,10 @@ static int vfswrap_aio_read(struct vfs_handle_struct *handle, struct files_struc static int vfswrap_aio_write(struct vfs_handle_struct *handle, struct files_struct *fsp, SMB_STRUCT_AIOCB *aiocb) { int ret; + if (!initialize_async_io_handler()) { + errno = ENOSYS; + return -1; + } /* * aio_write must be done as root, because in the glibc aio * implementation the helper thread needs to be able to send a signal -- cgit