Changeset View
Changeset View
Standalone View
Standalone View
head/sys/geom/nop/g_nop.c
Show First 20 Lines • Show All 249 Lines • ▼ Show 20 Lines | else | ||||
* lower level device. | * lower level device. | ||||
*/ | */ | ||||
break; | break; | ||||
mtx_unlock(&sc->sc_lock); | mtx_unlock(&sc->sc_lock); | ||||
return; | return; | ||||
case BIO_FLUSH: | case BIO_FLUSH: | ||||
sc->sc_flushes++; | sc->sc_flushes++; | ||||
break; | break; | ||||
case BIO_SPEEDUP: | |||||
sc->sc_speedups++; | |||||
break; | |||||
case BIO_CMD0: | case BIO_CMD0: | ||||
sc->sc_cmd0s++; | sc->sc_cmd0s++; | ||||
break; | break; | ||||
case BIO_CMD1: | case BIO_CMD1: | ||||
sc->sc_cmd1s++; | sc->sc_cmd1s++; | ||||
break; | break; | ||||
case BIO_CMD2: | case BIO_CMD2: | ||||
sc->sc_cmd2s++; | sc->sc_cmd2s++; | ||||
▲ Show 20 Lines • Show All 167 Lines • ▼ Show 20 Lines | g_nop_create(struct gctl_req *req, struct g_class *mp, struct g_provider *pp, | ||||
sc->sc_delaymsec = delaymsec; | sc->sc_delaymsec = delaymsec; | ||||
sc->sc_rdelayprob = rdelayprob; | sc->sc_rdelayprob = rdelayprob; | ||||
sc->sc_wdelayprob = wdelayprob; | sc->sc_wdelayprob = wdelayprob; | ||||
sc->sc_reads = 0; | sc->sc_reads = 0; | ||||
sc->sc_writes = 0; | sc->sc_writes = 0; | ||||
sc->sc_deletes = 0; | sc->sc_deletes = 0; | ||||
sc->sc_getattrs = 0; | sc->sc_getattrs = 0; | ||||
sc->sc_flushes = 0; | sc->sc_flushes = 0; | ||||
sc->sc_speedups = 0; | |||||
sc->sc_cmd0s = 0; | sc->sc_cmd0s = 0; | ||||
sc->sc_cmd1s = 0; | sc->sc_cmd1s = 0; | ||||
sc->sc_cmd2s = 0; | sc->sc_cmd2s = 0; | ||||
sc->sc_readbytes = 0; | sc->sc_readbytes = 0; | ||||
sc->sc_wrotebytes = 0; | sc->sc_wrotebytes = 0; | ||||
TAILQ_INIT(&sc->sc_head_delay); | TAILQ_INIT(&sc->sc_head_delay); | ||||
mtx_init(&sc->sc_lock, "gnop lock", NULL, MTX_DEF); | mtx_init(&sc->sc_lock, "gnop lock", NULL, MTX_DEF); | ||||
gp->softc = sc; | gp->softc = sc; | ||||
▲ Show 20 Lines • Show All 454 Lines • ▼ Show 20 Lines | if (pp == NULL || pp->geom->class != mp) { | ||||
return; | return; | ||||
} | } | ||||
sc = pp->geom->softc; | sc = pp->geom->softc; | ||||
sc->sc_reads = 0; | sc->sc_reads = 0; | ||||
sc->sc_writes = 0; | sc->sc_writes = 0; | ||||
sc->sc_deletes = 0; | sc->sc_deletes = 0; | ||||
sc->sc_getattrs = 0; | sc->sc_getattrs = 0; | ||||
sc->sc_flushes = 0; | sc->sc_flushes = 0; | ||||
sc->sc_speedups = 0; | |||||
sc->sc_cmd0s = 0; | sc->sc_cmd0s = 0; | ||||
sc->sc_cmd1s = 0; | sc->sc_cmd1s = 0; | ||||
sc->sc_cmd2s = 0; | sc->sc_cmd2s = 0; | ||||
sc->sc_readbytes = 0; | sc->sc_readbytes = 0; | ||||
sc->sc_wrotebytes = 0; | sc->sc_wrotebytes = 0; | ||||
} | } | ||||
} | } | ||||
▲ Show 20 Lines • Show All 54 Lines • ▼ Show 20 Lines | g_nop_dumpconf(struct sbuf *sb, const char *indent, struct g_geom *gp, | ||||
sbuf_printf(sb, "%s<CountUntilFail>%u</CountUntilFail>\n", indent, | sbuf_printf(sb, "%s<CountUntilFail>%u</CountUntilFail>\n", indent, | ||||
sc->sc_count_until_fail); | sc->sc_count_until_fail); | ||||
sbuf_printf(sb, "%s<Error>%d</Error>\n", indent, sc->sc_error); | sbuf_printf(sb, "%s<Error>%d</Error>\n", indent, sc->sc_error); | ||||
sbuf_printf(sb, "%s<Reads>%ju</Reads>\n", indent, sc->sc_reads); | sbuf_printf(sb, "%s<Reads>%ju</Reads>\n", indent, sc->sc_reads); | ||||
sbuf_printf(sb, "%s<Writes>%ju</Writes>\n", indent, sc->sc_writes); | sbuf_printf(sb, "%s<Writes>%ju</Writes>\n", indent, sc->sc_writes); | ||||
sbuf_printf(sb, "%s<Deletes>%ju</Deletes>\n", indent, sc->sc_deletes); | sbuf_printf(sb, "%s<Deletes>%ju</Deletes>\n", indent, sc->sc_deletes); | ||||
sbuf_printf(sb, "%s<Getattrs>%ju</Getattrs>\n", indent, sc->sc_getattrs); | sbuf_printf(sb, "%s<Getattrs>%ju</Getattrs>\n", indent, sc->sc_getattrs); | ||||
sbuf_printf(sb, "%s<Flushes>%ju</Flushes>\n", indent, sc->sc_flushes); | sbuf_printf(sb, "%s<Flushes>%ju</Flushes>\n", indent, sc->sc_flushes); | ||||
sbuf_printf(sb, "%s<Speedups>%ju</Speedups>\n", indent, sc->sc_speedups); | |||||
sbuf_printf(sb, "%s<Cmd0s>%ju</Cmd0s>\n", indent, sc->sc_cmd0s); | sbuf_printf(sb, "%s<Cmd0s>%ju</Cmd0s>\n", indent, sc->sc_cmd0s); | ||||
sbuf_printf(sb, "%s<Cmd1s>%ju</Cmd1s>\n", indent, sc->sc_cmd1s); | sbuf_printf(sb, "%s<Cmd1s>%ju</Cmd1s>\n", indent, sc->sc_cmd1s); | ||||
sbuf_printf(sb, "%s<Cmd2s>%ju</Cmd2s>\n", indent, sc->sc_cmd2s); | sbuf_printf(sb, "%s<Cmd2s>%ju</Cmd2s>\n", indent, sc->sc_cmd2s); | ||||
sbuf_printf(sb, "%s<ReadBytes>%ju</ReadBytes>\n", indent, | sbuf_printf(sb, "%s<ReadBytes>%ju</ReadBytes>\n", indent, | ||||
sc->sc_readbytes); | sc->sc_readbytes); | ||||
sbuf_printf(sb, "%s<WroteBytes>%ju</WroteBytes>\n", indent, | sbuf_printf(sb, "%s<WroteBytes>%ju</WroteBytes>\n", indent, | ||||
sc->sc_wrotebytes); | sc->sc_wrotebytes); | ||||
} | } | ||||
DECLARE_GEOM_CLASS(g_nop_class, g_nop); | DECLARE_GEOM_CLASS(g_nop_class, g_nop); | ||||
MODULE_VERSION(geom_nop, 0); | MODULE_VERSION(geom_nop, 0); |