Author: mav
Date: Fri Sep 23 21:29:40 2016
New Revision: 306279
URL: https://svnweb.freebsd.org/changeset/base/306279

Log:
  Use g_wither_provider() where applicable.
  
  It is just a helper function combining G_PF_WITHER setting with
  g_orphan_provider().

Modified:
  head/sys/geom/bde/g_bde.c
  head/sys/geom/concat/g_concat.c
  head/sys/geom/gate/g_gate.c
  head/sys/geom/journal/g_journal.c
  head/sys/geom/linux_lvm/g_linux_lvm.c
  head/sys/geom/mirror/g_mirror.c
  head/sys/geom/mountver/g_mountver.c
  head/sys/geom/raid3/g_raid3.c
  head/sys/geom/shsec/g_shsec.c
  head/sys/geom/stripe/g_stripe.c
  head/sys/geom/vinum/geom_vinum_rm.c
  head/sys/geom/virstor/g_virstor.c

Modified: head/sys/geom/bde/g_bde.c
==============================================================================
--- head/sys/geom/bde/g_bde.c   Fri Sep 23 20:20:50 2016        (r306278)
+++ head/sys/geom/bde/g_bde.c   Fri Sep 23 21:29:40 2016        (r306279)
@@ -85,7 +85,7 @@ g_bde_orphan(struct g_consumer *cp)
        sc = gp->softc;
        gp->flags |= G_GEOM_WITHER;
        LIST_FOREACH(pp, &gp->provider, provider)
-               g_orphan_provider(pp, ENXIO);
+               g_wither_provider(pp, ENXIO);
        bzero(sc, sizeof(struct g_bde_softc));  /* destroy evidence */
        return;
 }

Modified: head/sys/geom/concat/g_concat.c
==============================================================================
--- head/sys/geom/concat/g_concat.c     Fri Sep 23 20:20:50 2016        
(r306278)
+++ head/sys/geom/concat/g_concat.c     Fri Sep 23 21:29:40 2016        
(r306279)
@@ -129,10 +129,9 @@ g_concat_remove_disk(struct g_concat_dis
        }
 
        if (sc->sc_provider != NULL) {
-               sc->sc_provider->flags |= G_PF_WITHER;
                G_CONCAT_DEBUG(0, "Device %s deactivated.",
                    sc->sc_provider->name);
-               g_orphan_provider(sc->sc_provider, ENXIO);
+               g_wither_provider(sc->sc_provider, ENXIO);
                sc->sc_provider = NULL;
        }
 

Modified: head/sys/geom/gate/g_gate.c
==============================================================================
--- head/sys/geom/gate/g_gate.c Fri Sep 23 20:20:50 2016        (r306278)
+++ head/sys/geom/gate/g_gate.c Fri Sep 23 21:29:40 2016        (r306279)
@@ -109,8 +109,7 @@ g_gate_destroy(struct g_gate_softc *sc, 
        wakeup(sc);
        mtx_unlock(&sc->sc_queue_mtx);
        gp = pp->geom;
-       pp->flags |= G_PF_WITHER;
-       g_orphan_provider(pp, ENXIO);
+       g_wither_provider(pp, ENXIO);
        callout_drain(&sc->sc_callout);
        bioq_init(&queue);
        mtx_lock(&sc->sc_queue_mtx);

Modified: head/sys/geom/journal/g_journal.c
==============================================================================
--- head/sys/geom/journal/g_journal.c   Fri Sep 23 20:20:50 2016        
(r306278)
+++ head/sys/geom/journal/g_journal.c   Fri Sep 23 21:29:40 2016        
(r306279)
@@ -2462,8 +2462,7 @@ g_journal_destroy(struct g_journal_softc
                GJ_DEBUG(1, "Marking %s as clean.", sc->sc_name);
                g_journal_metadata_update(sc);
                g_topology_lock();
-               pp->flags |= G_PF_WITHER;
-               g_orphan_provider(pp, ENXIO);
+               g_wither_provider(pp, ENXIO);
        } else {
                g_topology_lock();
        }

Modified: head/sys/geom/linux_lvm/g_linux_lvm.c
==============================================================================
--- head/sys/geom/linux_lvm/g_linux_lvm.c       Fri Sep 23 20:20:50 2016        
(r306278)
+++ head/sys/geom/linux_lvm/g_linux_lvm.c       Fri Sep 23 21:29:40 2016        
(r306279)
@@ -333,7 +333,7 @@ g_llvm_remove_disk(struct g_llvm_vg *vg,
                if (found) {
                        G_LLVM_DEBUG(0, "Device %s removed.",
                            lv->lv_gprov->name);
-                       g_orphan_provider(lv->lv_gprov, ENXIO);
+                       g_wither_provider(lv->lv_gprov, ENXIO);
                        lv->lv_gprov = NULL;
                }
        }

Modified: head/sys/geom/mirror/g_mirror.c
==============================================================================
--- head/sys/geom/mirror/g_mirror.c     Fri Sep 23 20:20:50 2016        
(r306278)
+++ head/sys/geom/mirror/g_mirror.c     Fri Sep 23 21:29:40 2016        
(r306279)
@@ -2154,10 +2154,9 @@ g_mirror_destroy_provider(struct g_mirro
        mtx_unlock(&sc->sc_queue_mtx);
        G_MIRROR_DEBUG(0, "Device %s: provider %s destroyed.", sc->sc_name,
            sc->sc_provider->name);
-       sc->sc_provider->flags |= G_PF_WITHER;
-       g_orphan_provider(sc->sc_provider, ENXIO);
-       g_topology_unlock();
+       g_wither_provider(sc->sc_provider, ENXIO);
        sc->sc_provider = NULL;
+       g_topology_unlock();
        LIST_FOREACH(disk, &sc->sc_disks, d_next) {
                if (disk->d_state == G_MIRROR_DISK_STATE_SYNCHRONIZING)
                        g_mirror_sync_stop(disk, 1);

Modified: head/sys/geom/mountver/g_mountver.c
==============================================================================
--- head/sys/geom/mountver/g_mountver.c Fri Sep 23 20:20:50 2016        
(r306278)
+++ head/sys/geom/mountver/g_mountver.c Fri Sep 23 21:29:40 2016        
(r306279)
@@ -327,7 +327,7 @@ g_mountver_destroy(struct g_geom *gp, bo
                G_MOUNTVER_DEBUG(0, "Device %s removed.", gp->name);
        }
        if (pp != NULL)
-               g_orphan_provider(pp, ENXIO);
+               g_wither_provider(pp, ENXIO);
        g_mountver_discard_queued(gp);
        g_free(sc->sc_provider_name);
        g_free(gp->softc);

Modified: head/sys/geom/raid3/g_raid3.c
==============================================================================
--- head/sys/geom/raid3/g_raid3.c       Fri Sep 23 20:20:50 2016        
(r306278)
+++ head/sys/geom/raid3/g_raid3.c       Fri Sep 23 21:29:40 2016        
(r306279)
@@ -2368,8 +2368,7 @@ g_raid3_destroy_provider(struct g_raid3_
        mtx_unlock(&sc->sc_queue_mtx);
        G_RAID3_DEBUG(0, "Device %s: provider %s destroyed.", sc->sc_name,
            sc->sc_provider->name);
-       sc->sc_provider->flags |= G_PF_WITHER;
-       g_orphan_provider(sc->sc_provider, ENXIO);
+       g_wither_provider(sc->sc_provider, ENXIO);
        g_topology_unlock();
        sc->sc_provider = NULL;
        if (sc->sc_syncdisk != NULL)

Modified: head/sys/geom/shsec/g_shsec.c
==============================================================================
--- head/sys/geom/shsec/g_shsec.c       Fri Sep 23 20:20:50 2016        
(r306278)
+++ head/sys/geom/shsec/g_shsec.c       Fri Sep 23 21:29:40 2016        
(r306279)
@@ -156,7 +156,7 @@ g_shsec_remove_disk(struct g_consumer *c
 
        sc->sc_disks[no] = NULL;
        if (sc->sc_provider != NULL) {
-               g_orphan_provider(sc->sc_provider, ENXIO);
+               g_wither_provider(sc->sc_provider, ENXIO);
                sc->sc_provider = NULL;
                G_SHSEC_DEBUG(0, "Device %s removed.", sc->sc_name);
        }

Modified: head/sys/geom/stripe/g_stripe.c
==============================================================================
--- head/sys/geom/stripe/g_stripe.c     Fri Sep 23 20:20:50 2016        
(r306278)
+++ head/sys/geom/stripe/g_stripe.c     Fri Sep 23 21:29:40 2016        
(r306279)
@@ -171,10 +171,9 @@ g_stripe_remove_disk(struct g_consumer *
        }
 
        if (sc->sc_provider != NULL) {
-               sc->sc_provider->flags |= G_PF_WITHER;
                G_STRIPE_DEBUG(0, "Device %s deactivated.",
                    sc->sc_provider->name);
-               g_orphan_provider(sc->sc_provider, ENXIO);
+               g_wither_provider(sc->sc_provider, ENXIO);
                sc->sc_provider = NULL;
        }
 

Modified: head/sys/geom/vinum/geom_vinum_rm.c
==============================================================================
--- head/sys/geom/vinum/geom_vinum_rm.c Fri Sep 23 20:20:50 2016        
(r306278)
+++ head/sys/geom/vinum/geom_vinum_rm.c Fri Sep 23 21:29:40 2016        
(r306279)
@@ -223,8 +223,7 @@ gv_rm_vol(struct gv_softc *sc, struct gv
        /* Get rid of the volume's provider. */
        if (pp != NULL) {
                g_topology_lock();
-               pp->flags |= G_PF_WITHER;
-               g_orphan_provider(pp, ENXIO);
+               g_wither_provider(pp, ENXIO);
                g_topology_unlock();
        }
 }

Modified: head/sys/geom/virstor/g_virstor.c
==============================================================================
--- head/sys/geom/virstor/g_virstor.c   Fri Sep 23 20:20:50 2016        
(r306278)
+++ head/sys/geom/virstor/g_virstor.c   Fri Sep 23 21:29:40 2016        
(r306279)
@@ -900,11 +900,9 @@ remove_component(struct g_virstor_softc 
        LOG_MSG(LVL_DEBUG, "Component %s removed from %s", c->provider->name,
            sc->geom->name);
        if (sc->provider != NULL) {
-               /* Whither, GEOM? */
-               sc->provider->flags |= G_PF_WITHER;
-               g_orphan_provider(sc->provider, ENXIO);
+               LOG_MSG(LVL_INFO, "Removing provider %s", sc->provider->name);
+               g_wither_provider(sc->provider, ENXIO);
                sc->provider = NULL;
-               LOG_MSG(LVL_INFO, "Removing provider %s", sc->geom->name);
        }
 
        if (c->acr > 0 || c->acw > 0 || c->ace > 0)
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to