Re: git: 98844e99d40a - main - aio: Fix more synchronization issues in aio_biowakeup.

From: Alan Somers <asomers_at_freebsd.org>
Date: Wed, 15 Feb 2023 22:05:11 UTC
On Wed, Feb 15, 2023 at 2:33 PM John Baldwin <jhb@freebsd.org> wrote:
>
> The branch main has been updated by jhb:
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=98844e99d40a90ae89d84762e07150af3a8f89bd
>
> commit 98844e99d40a90ae89d84762e07150af3a8f89bd
> Author:     John Baldwin <jhb@FreeBSD.org>
> AuthorDate: 2023-02-15 21:32:52 +0000
> Commit:     John Baldwin <jhb@FreeBSD.org>
> CommitDate: 2023-02-15 21:32:52 +0000
>
>     aio: Fix more synchronization issues in aio_biowakeup.
>
>     - Use atomic_store to set job->error.  atomic_set does an or
>       operation, not assignment.
>
>     - Use refcount_* to manage job->nbio.
>
>       This ensures proper memory barriers are present so that the last bio
>       won't see a possibly stale value of job->error.
>
>     - Don't re-read job->error after reading it via atomic_load.
>
>     Reported by:    markj (1)
>     Reviewed by:    mjg, markj
>     Differential Revision:  https://reviews.freebsd.org/D38611

Thanks for fixing these subtle problems in aio_(read|write)v.  Will you MFC too?