Do not use g_wither_geom(9). I doesn't work in the way which is expected
here anymore (after g_wither_washer() was introduced), i.e. geom and consumer will not be immediately destroyed if possible.
This commit is contained in:
parent
7866c62aa6
commit
7e72a70863
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=133371
@ -552,9 +552,10 @@ g_concat_taste(struct g_class *mp, struct g_provider *pp, int flags __unused)
|
||||
gp->orphan = g_concat_orphan;
|
||||
cp = g_new_consumer(gp);
|
||||
g_attach(cp, pp);
|
||||
|
||||
error = g_concat_read_metadata(cp, &md);
|
||||
g_wither_geom(gp, ENXIO);
|
||||
g_detach(cp);
|
||||
g_destroy_consumer(cp);
|
||||
g_destroy_geom(gp);
|
||||
if (error != 0)
|
||||
return (NULL);
|
||||
gp = NULL;
|
||||
|
@ -194,7 +194,7 @@ g_label_taste(struct g_class *mp, struct g_provider *pp, int flags __unused)
|
||||
struct g_label_metadata md;
|
||||
struct g_consumer *cp;
|
||||
struct g_geom *gp;
|
||||
int error, i;
|
||||
int i;
|
||||
|
||||
g_trace(G_T_TOPOLOGY, "%s(%s, %s)", __func__, mp->name, pp->name);
|
||||
g_topology_assert();
|
||||
@ -210,15 +210,10 @@ g_label_taste(struct g_class *mp, struct g_provider *pp, int flags __unused)
|
||||
gp->orphan = g_label_orphan;
|
||||
cp = g_new_consumer(gp);
|
||||
g_attach(cp, pp);
|
||||
error = g_access(cp, 1, 0, 0);
|
||||
if (error != 0) {
|
||||
g_wither_geom(gp, ENXIO);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
if (g_access(cp, 1, 0, 0) != 0)
|
||||
goto end;
|
||||
do {
|
||||
error = g_label_read_metadata(cp, &md);
|
||||
if (error != 0)
|
||||
if (g_label_read_metadata(cp, &md) != 0)
|
||||
break;
|
||||
if (strcmp(md.md_magic, G_LABEL_MAGIC) != 0)
|
||||
break;
|
||||
@ -241,10 +236,11 @@ g_label_taste(struct g_class *mp, struct g_provider *pp, int flags __unused)
|
||||
g_label_create(NULL, mp, pp, label, g_labels[i]->ld_dir,
|
||||
pp->mediasize);
|
||||
}
|
||||
|
||||
g_access(cp, -1, 0, 0);
|
||||
g_wither_geom(gp, ENXIO);
|
||||
|
||||
end:
|
||||
g_detach(cp);
|
||||
g_destroy_consumer(cp);
|
||||
g_destroy_geom(gp);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
|
@ -883,9 +883,10 @@ g_stripe_taste(struct g_class *mp, struct g_provider *pp, int flags __unused)
|
||||
gp->orphan = g_stripe_orphan;
|
||||
cp = g_new_consumer(gp);
|
||||
g_attach(cp, pp);
|
||||
|
||||
error = g_stripe_read_metadata(cp, &md);
|
||||
g_wither_geom(gp, ENXIO);
|
||||
g_detach(cp);
|
||||
g_destroy_consumer(cp);
|
||||
g_destroy_geom(gp);
|
||||
if (error != 0)
|
||||
return (NULL);
|
||||
gp = NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user