Provided by: libaio-dev_0.3.109-2ubuntu1_amd64 bug


       io_cancel - Cancel io requests


       #include <errno.h>

       #include <libaio.h>

       int io_cancel(io_context_t ctx, struct iocb *iocb);

       struct iocb {
            void      *data; /* Return in the io completion event */
            unsigned  key; /* For use in identifying io requests */
            short          aio_lio_opcode;
            short          aio_reqprio;   /* Not used */
            int       aio_fildes;


       Attempts  to  cancel  an  iocb  previously  passed  to  io_submit.   If  the  operation is
       successfully cancelled, the resulting event is copied into the memory pointed to by result
       without being placed into the completion queue.

       When  one  or  more  requests  are  asynchronously  processed,  it might be useful in some
       situations to cancel a selected operation, e.g., if it becomes obvious  that  the  written
       data  is  no longer accurate and would have to be overwritten soon.  As an example, assume
       an application, which writes data in files in a situation where new  incoming  data  would
       have to be written in a file which will be updated by an enqueued request.


       0 is returned on success, otherwise returns errno.


       EFAULT If any of the data structures pointed to are invalid.

       EINVAL If aio_context specified by ctx_id is invalid.

       EAGAIN If the iocb specified was not cancelled.

       ENOSYS If not implemented.


       io(3),      io_fsync(3),      io_getevents(3),     io_prep_fsync(3),     io_prep_pread(3),
       io_prep_pwrite(3),      io_queue_init(3),      io_queue_release(3),       io_queue_run(3),
       io_queue_wait(3), io_set_callback(3), io_submit(3), errno(3).