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:
parent
844290e9a0
commit
bd9b6a249a
@ -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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user