RTEMS | aio_fsync() does not support O_DSYNC (#5040)

Joel Sherrill (@joel) gitlab at rtems.org
Thu Jun 27 15:24:56 UTC 2024




Joel Sherrill commented: https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5040#note_108391


It looks like the aio enqueue process will insert requests on to the one associated with the thread for that file descriptor. But if I am reading this code right, the requests are placed in LIFO order.

```
    while (
      req->aiocbp->aio_reqprio > prio &&
      !rtems_chain_is_tail( chain, node )
    ) {
```
I think that should be >= prio so the scan for the insertion point will put new requests at the same priority at the end of the same priority ones. If I am reading this right, changing to >= prio should address your concern.

I think all requested operations on a single fd should be processed in priority order and FIFO order when at the same priority.

-- 
View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5040#note_108391
You're receiving this email because of your account on gitlab.rtems.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/bugs/attachments/20240627/19277910/attachment.htm>


More information about the bugs mailing list