Clear G_CF_ORPHAN when attaching. This fixes cases where the same

GEOM consumer can be orphaned, and then reattach to another provider.

From a user point of view, this makes gmountver(4) work again.

Reviewed by:	avg, mav
MFC after:	2 weeks
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D12228
This commit is contained in:
Edward Tomasz Napierala 2017-10-02 11:57:00 +00:00
parent 620c2c801b
commit 2b4490a5d3
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=324199

View File

@ -828,6 +828,7 @@ g_attach(struct g_consumer *cp, struct g_provider *pp)
g_trace(G_T_TOPOLOGY, "g_attach(%p, %p)", cp, pp);
KASSERT(cp->provider == NULL, ("attach but attached"));
cp->provider = pp;
cp->flags &= ~G_CF_ORPHAN;
LIST_INSERT_HEAD(&pp->consumers, cp, consumers);
error = redo_rank(cp->geom);
if (error) {