mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-18 10:35:55 +00:00
MFprojects/camlock r254907:
Move g_io_deliver() out of the lock, as required for direct dispatch. Move g_destroy_bio() out too to reduce lock scope even more.
This commit is contained in:
parent
e431d66c04
commit
0fd2511ae2
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=256606
@ -245,13 +245,14 @@ g_disk_done(struct bio *bp)
|
||||
bp2->bio_completed += bp->bio_completed;
|
||||
if ((bp->bio_cmd & (BIO_READ|BIO_WRITE|BIO_DELETE)) != 0)
|
||||
devstat_end_transaction_bio_bt(sc->dp->d_devstat, bp, &now);
|
||||
g_destroy_bio(bp);
|
||||
bp2->bio_inbed++;
|
||||
if (bp2->bio_children == bp2->bio_inbed) {
|
||||
mtx_unlock(&sc->done_mtx);
|
||||
bp2->bio_resid = bp2->bio_bcount - bp2->bio_completed;
|
||||
g_io_deliver(bp2, bp2->bio_error);
|
||||
}
|
||||
mtx_unlock(&sc->done_mtx);
|
||||
} else
|
||||
mtx_unlock(&sc->done_mtx);
|
||||
g_destroy_bio(bp);
|
||||
}
|
||||
|
||||
static int
|
||||
|
Loading…
Reference in New Issue
Block a user