1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-01 04:58:35 +03:00

r11283: Move to using sival_int from sival_ptr. Part of bug #2922.

Jeremy.
(This used to be commit f68ff32630ee3b06b69bac59674ecc1496880a47)
This commit is contained in:
Jeremy Allison 2005-10-25 05:26:53 +00:00 committed by Gerald (Jerry) Carter
parent 844290e9a0
commit bd9b6a249a

View File

@ -155,7 +155,7 @@ static uint16 aio_pending_array[AIO_PENDING_SIZE];
static void signal_handler(int sig, siginfo_t *info, void *unused)
{
if (signals_received < AIO_PENDING_SIZE - 1) {
aio_pending_array[signals_received] = *(uint16 *)(info->si_value.sival_ptr);
aio_pending_array[signals_received] = info->si_value.sival_int;
signals_received++;
} /* Else signal is lost. */
sys_select_signal(RT_SIGNAL_AIO);
@ -248,7 +248,7 @@ BOOL schedule_aio_read_and_X(connection_struct *conn,
a->aio_offset = startpos;
a->aio_sigevent.sigev_notify = SIGEV_SIGNAL;
a->aio_sigevent.sigev_signo = RT_SIGNAL_AIO;
a->aio_sigevent.sigev_value.sival_ptr = (void *)&aio_ex->mid;
a->aio_sigevent.sigev_value.sival_int = aio_ex->mid;
if (SMB_VFS_AIO_READ(fsp,a) == -1) {
DEBUG(0,("schedule_aio_read_and_X: aio_read failed. Error %s\n",
@ -327,7 +327,7 @@ BOOL schedule_aio_write_and_X(connection_struct *conn,
a->aio_offset = startpos;
a->aio_sigevent.sigev_notify = SIGEV_SIGNAL;
a->aio_sigevent.sigev_signo = RT_SIGNAL_AIO;
a->aio_sigevent.sigev_value.sival_ptr = (void *)&aio_ex->mid;
a->aio_sigevent.sigev_value.sival_int = aio_ex->mid;
if (SMB_VFS_AIO_WRITE(fsp,a) == -1) {
DEBUG(3,("schedule_aio_wrote_and_X: aio_write failed. Error %s\n",
@ -642,10 +642,16 @@ BOOL wait_for_aio_completion(files_struct *fsp)
/* One or more events might have completed - process them if so. */
for( i = 0; i < aio_completion_count; i++) {
uint16 mid = *(uint16 *)aiocb_list[i]->aio_sigevent.sigev_value.sival_ptr;
uint16 mid = aiocb_list[i]->aio_sigevent.sigev_value.sival_int;
aio_ex = find_aio_ex(mid);
if (!aio_ex) {
DEBUG(0, ("wait_for_aio_completion: mid %u doesn't match an aio record\n",
(unsigned int)mid ));
continue;
}
if (!handle_aio_completed(aio_ex, &err)) {
continue;
}