Index: sys/geom/geom_disk.c =================================================================== --- sys/geom/geom_disk.c (wersja 240879) +++ sys/geom/geom_disk.c (kopia robocza) @@ -635,13 +635,15 @@ struct g_geom *gp; struct g_provider *pp; - g_topology_lock(); gp = dp->d_geom; if (gp != NULL) { - LIST_FOREACH(pp, &gp->provider, provider) + pp = LIST_FIRST(&gp->provider); + if (pp != NULL) { + KASSERT(LIST_NEXT(pp, provider) == NULL, + ("geom %p has more than one provider", gp)); g_wither_provider(pp, ENXIO); + } } - g_topology_unlock(); } void