svn commit: r187399 - projects/gvinum/sys/geom/vinum
Ulf Lilleengen
lulf at FreeBSD.org
Sun Jan 18 09:54:04 PST 2009
Author: lulf
Date: Sun Jan 18 17:54:03 2009
New Revision: 187399
URL: http://svn.freebsd.org/changeset/base/187399
Log:
- Make it possible to move disks from a mirrored volume while mounted.
Modified:
projects/gvinum/sys/geom/vinum/geom_vinum_move.c
projects/gvinum/sys/geom/vinum/geom_vinum_subr.c
Modified: projects/gvinum/sys/geom/vinum/geom_vinum_move.c
==============================================================================
--- projects/gvinum/sys/geom/vinum/geom_vinum_move.c Sun Jan 18 17:07:48 2009 (r187398)
+++ projects/gvinum/sys/geom/vinum/geom_vinum_move.c Sun Jan 18 17:54:03 2009 (r187399)
@@ -113,9 +113,9 @@ gv_move_sd(struct gv_softc *sc, struct g
d = cursd->drive_sc;
- /* XXX: Can't do a move without unmounting. Perhaps okay. */
- if (gv_consumer_is_open(d->consumer) ||
- gv_consumer_is_open(destination->consumer)) {
+ if ((gv_consumer_is_open(d->consumer) ||
+ gv_consumer_is_open(destination->consumer)) &&
+ !(flags && GV_FLAG_F)) {
G_VINUM_DEBUG(0, "consumers on current and destination drive "
" still open");
return (GV_ERR_ISBUSY);
@@ -180,6 +180,9 @@ gv_move_sd(struct gv_softc *sc, struct g
}
gv_sd_to_plex(newsd, p);
LIST_INSERT_HEAD(&sc->subdisks, newsd, sd);
-
+ /* Update volume size of plex. */
+ if (p->vol_sc != NULL)
+ gv_update_vol_size(p->vol_sc, gv_vol_size(p->vol_sc));
+ gv_save_config(p->vinumconf);
return (0);
}
Modified: projects/gvinum/sys/geom/vinum/geom_vinum_subr.c
==============================================================================
--- projects/gvinum/sys/geom/vinum/geom_vinum_subr.c Sun Jan 18 17:07:48 2009 (r187398)
+++ projects/gvinum/sys/geom/vinum/geom_vinum_subr.c Sun Jan 18 17:54:03 2009 (r187399)
@@ -431,9 +431,6 @@ gv_plex_size(struct gv_plex *p)
KASSERT(p != NULL, ("gv_plex_size: NULL p"));
- if (p->sdcount == 0)
- return (0);
-
/* Adjust the size of our plex. */
size = 0;
sdcount = gv_sdcount(p, 1);
More information about the svn-src-projects
mailing list