View | Details | Raw Unified | Return to bug 239030
Collapse All | Expand All

(-)b/sys/geom/geom_subr.c (+8 lines)
Lines 631-636 g_resize_provider_event(void *arg, int flag) Link Here
631
	LIST_FOREACH_SAFE(cp, &pp->consumers, consumers, cp2) {
631
	LIST_FOREACH_SAFE(cp, &pp->consumers, consumers, cp2) {
632
		gp = cp->geom;
632
		gp = cp->geom;
633
		if (gp->resize == NULL && size < pp->mediasize) {
633
		if (gp->resize == NULL && size < pp->mediasize) {
634
			/*
635
			 * XXX: g_dev_orphan method does deferred destroying
636
			 * and it is possible, that other event could already
637
			 * call the orphan method. Check consumer's flags to
638
			 * do not schedule it twice.
639
			 */
640
			if (cp->flags & G_CF_ORPHAN)
641
				continue;
634
			cp->flags |= G_CF_ORPHAN;
642
			cp->flags |= G_CF_ORPHAN;
635
			cp->geom->orphan(cp);
643
			cp->geom->orphan(cp);
636
		}
644
		}

Return to bug 239030