HomeFreeBSD

gmirror: Release pending regular requests when synchronization stops.

Description

gmirror: Release pending regular requests when synchronization stops.

Normally gmirror allows colliding requests to proceed whenever a
synchronization request completes and advances to the next offset. However
if an I/O request collides with one of the final g_mirror_syncreqs, nothing
releases it once synchronization completes, resulting in an apparent I/O
hang. The same problem can occur if synchronization is aborted by an
I/O error. Therefore, be sure to requeue pending requests when
mirror synchronization is stopped for any reason.

While here, remove some dead code from g_mirror_regular_release().

MFC after: 2 weeks
Sponsored by: Dell EMC Isilon

Details

Provenance
markjAuthored on
Parents
rS307690: Don't build libssp as a prereq lib if WITHOUT_SSP is set
Branches
Unknown
Tags
Unknown