From owner-svn-src-projects@FreeBSD.ORG Mon Aug 26 07:07:42 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 6A2F2A71; Mon, 26 Aug 2013 07:07:42 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 465022D37; Mon, 26 Aug 2013 07:07:42 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7Q77gqf067811; Mon, 26 Aug 2013 07:07:42 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7Q77f8c067808; Mon, 26 Aug 2013 07:07:41 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201308260707.r7Q77f8c067808@svn.freebsd.org> From: Alexander Motin Date: Mon, 26 Aug 2013 07:07:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r254896 - in projects/camlock/sys/geom: multipath part zero X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Aug 2013 07:07:42 -0000 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;