Sorry for the silly question, but the aiocb definition found in the SGI
KAIO patch is as follows:
typedef struct aiocb {
int aio_fildes; /* File descriptor to perform aio */
void *aio_buf; /* User's data buffer */
size_t aio_nbytes; /* No. of bytes in transfer */
#if defined(__USE_FILE_OFFSET64) || defined(AIO_FILE_OFFSET64) ||
defined(__KERNEL__)
loff_t aio_offset;
#else
off_t aio_offset; /* File position to begin transfer */
char __aio_pad[sizeof(loff_t) - sizeof(off_t)];
#endif
int aio_reqprio; /* Unused - Reserved */
sigevent_t aio_sigevent; /* Notification Options */
int aio_lio_opcode; /* lio_listio opcode */
unsigned long aio_reserved[AIO_RESERVED];/* Don't use this
*/
#ifdef KAIO_STATS
unsigned long aio_times[AIO_TIMES];
#endif
} aiocb_t;
The relevant area of concern is aio_buf.
Shouldn't aio_buf be marked volatile? It certainly is in the case where
one is providing an async read. Obviously I have similar concerns for
aiocb64.
--Chris
|