Date: Mon, 26 Aug 2013 07:07:41 +0000 (UTC) From: Alexander Motin <mav@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r254896 - in projects/camlock/sys/geom: multipath part zero Message-ID: <201308260707.r7Q77f8c067808@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mav Date: Mon Aug 26 07:07:41 2013 New Revision: 254896 URL: http://svnweb.freebsd.org/changeset/base/254896 Log: Declare GEOM direct dispatch support for PART, ZERO and MULTIPATH classes. First two have nothing to protect, the last is already locked properly. Modified: projects/camlock/sys/geom/multipath/g_multipath.c projects/camlock/sys/geom/part/g_part.c projects/camlock/sys/geom/zero/g_zero.c Modified: projects/camlock/sys/geom/multipath/g_multipath.c ============================================================================== --- projects/camlock/sys/geom/multipath/g_multipath.c Mon Aug 26 07:03:08 2013 (r254895) +++ projects/camlock/sys/geom/multipath/g_multipath.c Mon Aug 26 07:07:41 2013 (r254896) @@ -442,6 +442,7 @@ g_multipath_create(struct g_class *mp, s gp->dumpconf = g_multipath_dumpconf; pp = g_new_providerf(gp, "multipath/%s", md->md_name); + pp->flags |= G_PF_DIRECT_SEND | G_PF_DIRECT_RECEIVE; if (md->md_size != 0) { pp->mediasize = md->md_size - ((md->md_uuid[0] != 0) ? md->md_sectorsize : 0); @@ -479,6 +480,7 @@ g_multipath_add_disk(struct g_geom *gp, } nxtcp = LIST_FIRST(&gp->consumer); cp = g_new_consumer(gp); + cp->flags |= G_CF_DIRECT_SEND | G_CF_DIRECT_RECEIVE; cp->private = NULL; cp->index = MP_NEW; error = g_attach(cp, pp); Modified: projects/camlock/sys/geom/part/g_part.c ============================================================================== --- projects/camlock/sys/geom/part/g_part.c Mon Aug 26 07:03:08 2013 (r254895) +++ projects/camlock/sys/geom/part/g_part.c Mon Aug 26 07:07:41 2013 (r254896) @@ -416,6 +416,7 @@ g_part_new_provider(struct g_geom *gp, s sbuf_finish(sb); entry->gpe_pp = g_new_providerf(gp, "%s", sbuf_data(sb)); sbuf_delete(sb); + entry->gpe_pp->flags |= G_PF_DIRECT_SEND | G_PF_DIRECT_RECEIVE; entry->gpe_pp->private = entry; /* Close the circle. */ } entry->gpe_pp->index = entry->gpe_index - 1; /* index is 1-based. */ @@ -928,6 +929,7 @@ g_part_ctl_create(struct gctl_req *req, LIST_INIT(&table->gpt_entry); if (null == NULL) { cp = g_new_consumer(gp); + cp->flags |= G_CF_DIRECT_SEND | G_CF_DIRECT_RECEIVE; error = g_attach(cp, pp); if (error == 0) error = g_access(cp, 1, 1, 1); @@ -1884,6 +1886,7 @@ g_part_taste(struct g_class *mp, struct */ gp = g_new_geomf(mp, "%s", pp->name); cp = g_new_consumer(gp); + cp->flags |= G_CF_DIRECT_SEND | G_CF_DIRECT_RECEIVE; error = g_attach(cp, pp); if (error == 0) error = g_access(cp, 1, 0, 0); Modified: projects/camlock/sys/geom/zero/g_zero.c ============================================================================== --- projects/camlock/sys/geom/zero/g_zero.c Mon Aug 26 07:03:08 2013 (r254895) +++ projects/camlock/sys/geom/zero/g_zero.c Mon Aug 26 07:07:41 2013 (r254896) @@ -106,6 +106,7 @@ g_zero_init(struct g_class *mp) gp->start = g_zero_start; gp->access = g_std_access; gpp = pp = g_new_providerf(gp, "%s", gp->name); + pp->flags |= G_PF_DIRECT_SEND | G_PF_DIRECT_RECEIVE; if (!g_zero_clear) pp->flags |= G_PF_ACCEPT_UNMAPPED; pp->mediasize = 1152921504606846976LLU;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201308260707.r7Q77f8c067808>