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
093cf24619
commit
90e17792c8
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=311901
@ -3905,10 +3905,8 @@ biodone(struct bio *bp)
|
||||
bp->bio_flags |= BIO_DONE;
|
||||
wakeup(bp);
|
||||
mtx_unlock(mtxp);
|
||||
} else {
|
||||
bp->bio_flags |= BIO_DONE;
|
||||
} else
|
||||
done(bp);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user