Date: Mon, 1 Jul 2019 22:06:16 +0000 (UTC) From: Ryan Libby <rlibby@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r349586 - head/sys/geom/eli Message-ID: <201907012206.x61M6GT4038871@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: rlibby Date: Mon Jul 1 22:06:16 2019 New Revision: 349586 URL: https://svnweb.freebsd.org/changeset/base/349586 Log: g_eli_create: only dec g_access acw if we inc'd it Reviewed by: cem, markj Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D20743 Modified: head/sys/geom/eli/g_eli.c Modified: head/sys/geom/eli/g_eli.c ============================================================================== --- head/sys/geom/eli/g_eli.c Mon Jul 1 22:00:42 2019 (r349585) +++ head/sys/geom/eli/g_eli.c Mon Jul 1 22:06:16 2019 (r349586) @@ -827,7 +827,7 @@ g_eli_create(struct gctl_req *req, struct g_class *mp, struct g_provider *pp; struct g_consumer *cp; u_int i, threads; - int error; + int dcw, error; G_ELI_DEBUG(1, "Creating device %s%s.", bpp->name, G_ELI_SUFFIX); @@ -881,10 +881,8 @@ g_eli_create(struct gctl_req *req, struct g_class *mp, * We don't open provider for writing only when user requested read-only * access. */ - if (sc->sc_flags & G_ELI_FLAG_RO) - error = g_access(cp, 1, 0, 1); - else - error = g_access(cp, 1, 1, 1); + dcw = (sc->sc_flags & G_ELI_FLAG_RO) ? 0 : 1; + error = g_access(cp, 1, dcw, 1); if (error != 0) { if (req != NULL) { gctl_error(req, "Cannot access %s (error=%d).", @@ -996,7 +994,7 @@ failed: mtx_destroy(&sc->sc_queue_mtx); if (cp->provider != NULL) { if (cp->acr == 1) - g_access(cp, -1, -1, -1); + g_access(cp, -1, -dcw, -1); g_detach(cp); } g_destroy_consumer(cp);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201907012206.x61M6GT4038871>