summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/geom/vinum/geom_vinum_drive.c3
-rw-r--r--sys/geom/vinum/geom_vinum_state.c4
2 files changed, 6 insertions, 1 deletions
diff --git a/sys/geom/vinum/geom_vinum_drive.c b/sys/geom/vinum/geom_vinum_drive.c
index 741dfad..24ac08d 100644
--- a/sys/geom/vinum/geom_vinum_drive.c
+++ b/sys/geom/vinum/geom_vinum_drive.c
@@ -318,7 +318,8 @@ gv_drive_orphan(struct g_consumer *cp)
s->provider = NULL;
s->consumer = NULL;
}
- gv_set_drive_state(d, GV_DRIVE_DOWN, GV_SETSTATE_FORCE);
+ gv_set_drive_state(d, GV_DRIVE_DOWN,
+ GV_SETSTATE_FORCE | GV_SETSTATE_CONFIG);
}
gp->softc = NULL;
g_wither_geom(gp, error);
diff --git a/sys/geom/vinum/geom_vinum_state.c b/sys/geom/vinum/geom_vinum_state.c
index 0510bc9..2f9ad59 100644
--- a/sys/geom/vinum/geom_vinum_state.c
+++ b/sys/geom/vinum/geom_vinum_state.c
@@ -63,6 +63,10 @@ gv_set_drive_state(struct gv_drive *d, int newstate, int flags)
gv_update_sd_state(s);
}
+ /* Save the config back to disk. */
+ if (flags & GV_SETSTATE_CONFIG)
+ gv_save_config_all(d->vinumconf);
+
return (1);
}
OpenPOWER on IntegriCloud