svn commit: r226002 - projects/geom-events/sys/geom/mirror
Lev A. Serebryakov
lev at FreeBSD.org
Tue Oct 4 17:02:11 UTC 2011
Author: lev (ports committer)
Date: Tue Oct 4 17:02:10 2011
New Revision: 226002
URL: http://svn.freebsd.org/changeset/base/226002
Log:
Add g_notify_*() calls to geom_mirror
Modified:
projects/geom-events/sys/geom/mirror/g_mirror.c
Modified: projects/geom-events/sys/geom/mirror/g_mirror.c
==============================================================================
--- projects/geom-events/sys/geom/mirror/g_mirror.c Tue Oct 4 17:01:58 2011 (r226001)
+++ projects/geom-events/sys/geom/mirror/g_mirror.c Tue Oct 4 17:02:10 2011 (r226002)
@@ -1998,6 +1998,8 @@ g_mirror_sync_stop(struct g_mirror_disk
G_MIRROR_DEBUG(0, "Device %s: rebuilding provider %s stopped.",
sc->sc_name, g_mirror_get_diskname(disk));
}
+ g_notify_sync_stop(sc->sc_provider, !type);
+
free(disk->d_sync.ds_bios, M_MIRROR);
disk->d_sync.ds_bios = NULL;
cp = disk->d_sync.ds_consumer;
@@ -2353,6 +2355,7 @@ g_mirror_update_device(struct g_mirror_s
* No active disks or no disks at all,
* so destroy device.
*/
+ g_notify_destroyed(sc->sc_provider);
if (sc->sc_provider != NULL)
g_mirror_destroy_provider(sc);
sc->sc_flags |= G_MIRROR_DEVICE_FLAG_DESTROY;
@@ -2529,6 +2532,9 @@ again:
g_mirror_disk_state2str(disk->d_state)));
DISK_STATE_CHANGED();
+ /* Send notification */
+ g_notify_sync_start(sc->sc_provider);
+
if (disk->d_state == G_MIRROR_DISK_STATE_NEW)
disk->d_flags &= ~G_MIRROR_DISK_FLAG_DIRTY;
disk->d_state = state;
@@ -2580,6 +2586,11 @@ again:
G_MIRROR_DEBUG(0, "Device %s: provider %s disconnected.",
sc->sc_name, g_mirror_get_diskname(disk));
+ g_notify_disconnect(sc->sc_provider, disk->d_consumer,
+ ((g_mirror_ndisks(sc, -1) == 1)?
+ G_NOTIFY_DISCONNECT_DEAD:
+ G_NOTIFY_DISCONNECT_FIXABLE));
+
g_mirror_destroy_disk(disk);
break;
case G_MIRROR_DISK_STATE_DESTROY:
More information about the svn-src-projects
mailing list