aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPawel Jakub Dawidek <pjd@FreeBSD.org>2006-02-12 17:38:09 +0000
committerPawel Jakub Dawidek <pjd@FreeBSD.org>2006-02-12 17:38:09 +0000
commitbf31327cca6434a2acc12e75729420474c2f9b32 (patch)
treed936db63a6dbb38a908d33970600a12f8d660ab8
parent01f1f41c257dd44fe8a8c87f0c53c3d455e14640 (diff)
downloadsrc-bf31327cca6434a2acc12e75729420474c2f9b32.tar.gz
src-bf31327cca6434a2acc12e75729420474c2f9b32.zip
On component state change to ACTIVE don't forget to update metadata.
MFC after: 3 days
Notes
Notes: svn path=/head/; revision=155582
-rw-r--r--sys/geom/mirror/g_mirror.c5
-rw-r--r--sys/geom/raid3/g_raid3.c5
2 files changed, 4 insertions, 6 deletions
diff --git a/sys/geom/mirror/g_mirror.c b/sys/geom/mirror/g_mirror.c
index 80c630933372..ce6ea5dff166 100644
--- a/sys/geom/mirror/g_mirror.c
+++ b/sys/geom/mirror/g_mirror.c
@@ -2188,9 +2188,7 @@ again:
g_mirror_disk_state2str(disk->d_state)));
DISK_STATE_CHANGED();
- if (disk->d_state == G_MIRROR_DISK_STATE_NEW)
- disk->d_flags &= ~G_MIRROR_DISK_FLAG_DIRTY;
- else if (disk->d_state == G_MIRROR_DISK_STATE_SYNCHRONIZING) {
+ if (disk->d_state == G_MIRROR_DISK_STATE_SYNCHRONIZING) {
disk->d_flags &= ~G_MIRROR_DISK_FLAG_SYNCHRONIZING;
disk->d_flags &= ~G_MIRROR_DISK_FLAG_FORCE_SYNC;
g_mirror_sync_stop(disk, 0);
@@ -2199,6 +2197,7 @@ again:
disk->d_sync.ds_offset = 0;
disk->d_sync.ds_offset_done = 0;
g_mirror_update_idle(sc, disk);
+ g_mirror_update_metadata(disk);
G_MIRROR_DEBUG(0, "Device %s: provider %s activated.",
sc->sc_name, g_mirror_get_diskname(disk));
break;
diff --git a/sys/geom/raid3/g_raid3.c b/sys/geom/raid3/g_raid3.c
index bdf2262f7477..e10c394c5b4a 100644
--- a/sys/geom/raid3/g_raid3.c
+++ b/sys/geom/raid3/g_raid3.c
@@ -2439,9 +2439,7 @@ again:
g_raid3_disk_state2str(disk->d_state)));
DISK_STATE_CHANGED();
- if (disk->d_state == G_RAID3_DISK_STATE_NEW)
- disk->d_flags &= ~G_RAID3_DISK_FLAG_DIRTY;
- else if (disk->d_state == G_RAID3_DISK_STATE_SYNCHRONIZING) {
+ if (disk->d_state == G_RAID3_DISK_STATE_SYNCHRONIZING) {
disk->d_flags &= ~G_RAID3_DISK_FLAG_SYNCHRONIZING;
disk->d_flags &= ~G_RAID3_DISK_FLAG_FORCE_SYNC;
g_raid3_sync_stop(sc, 0);
@@ -2450,6 +2448,7 @@ again:
disk->d_sync.ds_offset = 0;
disk->d_sync.ds_offset_done = 0;
g_raid3_update_idle(sc, disk);
+ g_raid3_update_metadata(disk);
G_RAID3_DEBUG(0, "Device %s: provider %s activated.",
sc->sc_name, g_raid3_get_diskname(disk));
break;