On Wed, May 03, 2023 at 04:01:42PM +0200, Kevin Wolf wrote: > job_cancel_locked() drops the job list lock temporarily and it may call > aio_poll(). We must assume that the list has changed after this call. > Also, with unlucky timing, it can end up freeing the job during > job_completed_txn_abort_locked(), making the job pointer invalid, too. > > For both reasons, we can't just continue at block_job_next_locked(job). > Instead, start at the head of the list again after job_cancel_locked() > and skip those jobs that we already cancelled (or that are completing > anyway). > > Signed-off-by: Kevin Wolf <kw...@redhat.com> > --- > blockdev.c | 18 ++++++++++++++---- > 1 file changed, 14 insertions(+), 4 deletions(-)
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
signature.asc
Description: PGP signature