summaryrefslogtreecommitdiffstats
path: root/sys/geom/vinum/geom_vinum_init.c
diff options
context:
space:
mode:
authorle <le@FreeBSD.org>2004-09-18 13:44:43 +0000
committerle <le@FreeBSD.org>2004-09-18 13:44:43 +0000
commit18ba8315a7f99725d24144b4ba8f020a09eb6c80 (patch)
treeb26a5245ec9f7555a82415414ac98257151bf50c /sys/geom/vinum/geom_vinum_init.c
parent1991acc23e3343dcdae467ab20ed1b0e729ea778 (diff)
downloadFreeBSD-src-18ba8315a7f99725d24144b4ba8f020a09eb6c80.zip
FreeBSD-src-18ba8315a7f99725d24144b4ba8f020a09eb6c80.tar.gz
Re-vamp how I/O is handled in volumes and plexes.
Analogous to the drive level, give each volume and plex a worker thread that picks up and processes incoming and completed BIOs. This should fix the data corruption issues that have come up a few weeks ago and improve performance, especially of RAID5 plexes. The volume level needs a little work, though.
Diffstat (limited to 'sys/geom/vinum/geom_vinum_init.c')
-rw-r--r--sys/geom/vinum/geom_vinum_init.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/geom/vinum/geom_vinum_init.c b/sys/geom/vinum/geom_vinum_init.c
index 4ad7a03..382ea15 100644
--- a/sys/geom/vinum/geom_vinum_init.c
+++ b/sys/geom/vinum/geom_vinum_init.c
@@ -293,7 +293,7 @@ gv_sync_td(void *arg)
* This hack declare this bio as part of an initialization
* process, so that the lower levels allow it to get through.
*/
- bp->bio_caller1 = p;
+ bp->bio_cflags |= GV_BIO_SYNCREQ;
/* Schedule it down ... */
g_io_request(bp, to);
OpenPOWER on IntegriCloud