HomeFreeBSD

Fix locking issues with aio_fsync().

Description

Fix locking issues with aio_fsync().

  • Use correct lock in aio_cancel_sync when dequeueing job.
  • Add _locked variants of aio_set/clear_cancel_function and use those to avoid lock recursion when adding and removing fsync jobs to the per-process sync queue.
  • While here, add a basic test for aio_fsync().

PR: 211390
Reported by: Randy Westlund <rwestlun@gmail.com>
MFC after: 1 week
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D7339

Details

Provenance
jhbAuthored on
Differential Revision
D7339: Fix locking issues with aio_fsync().
Parents
rS303500: Merge from PQ_LAUNDRY at r303496
Branches
Unknown
Tags
Unknown