Do not set BIO_DONE if the BIO specifies a completion handler.
biowait() will otherwise race with completions of such BIOs. In-tree code only calls biowait() on BIOs that do not specify a handler, so this change should not have any functional impact. Reviewed by: mav MFC after: 1 month Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D9070
This commit is contained in:
parent
923248a288
commit
83d67f5f72
@ -3905,11 +3905,9 @@ biodone(struct bio *bp)
|
||||
bp->bio_flags |= BIO_DONE;
|
||||
wakeup(bp);
|
||||
mtx_unlock(mtxp);
|
||||
} else {
|
||||
bp->bio_flags |= BIO_DONE;
|
||||
} else
|
||||
done(bp);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Wait for a BIO to finish.
|
||||
|
Loading…
x
Reference in New Issue
Block a user