svn commit: r218406 - projects/graid/head/sys/geom/raid
Alexander Motin
mav at FreeBSD.org
Mon Feb 7 16:14:12 UTC 2011
Author: mav
Date: Mon Feb 7 16:14:12 2011
New Revision: 218406
URL: http://svn.freebsd.org/changeset/base/218406
Log:
Define and use G_RAID_NODE_E_WAKE constant.
Modified:
projects/graid/head/sys/geom/raid/g_raid.c
projects/graid/head/sys/geom/raid/g_raid.h
Modified: projects/graid/head/sys/geom/raid/g_raid.c
==============================================================================
--- projects/graid/head/sys/geom/raid/g_raid.c Mon Feb 7 15:47:43 2011 (r218405)
+++ projects/graid/head/sys/geom/raid/g_raid.c Mon Feb 7 16:14:12 2011 (r218406)
@@ -133,6 +133,8 @@ g_raid_node_event2str(int event)
{
switch (event) {
+ case G_RAID_NODE_E_WAKE:
+ return ("WAKE");
case G_RAID_NODE_E_START:
return ("START");
default:
@@ -1467,6 +1469,8 @@ g_raid_update_node(struct g_raid_softc *
G_RAID_DEBUG(2, "Event %s for node %s.",
g_raid_node_event2str(event), sc->sc_name);
+ if (event == G_RAID_NODE_E_WAKE)
+ return (0);
if (sc->sc_md)
G_RAID_MD_EVENT(sc->sc_md, NULL, event);
return (0);
@@ -1509,7 +1513,8 @@ g_raid_access(struct g_provider *pp, int
opens = g_raid_nopens(sc);
if (opens == 0) {
sc->sc_stopping = G_RAID_DESTROY_HARD;
- g_raid_event_send(sc, 0, 0); /* Wake up worker. */
+ /* Wake up worker to make it selfdestruct. */
+ g_raid_event_send(sc, G_RAID_NODE_E_WAKE, 0);
}
}
/* Handle open volume destruction. */
@@ -1699,7 +1704,7 @@ g_raid_destroy_node(struct g_raid_softc
kproc_exit(0);
} else {
/* Wake up worker to make it selfdestruct. */
- g_raid_event_send(sc, 0, 0);
+ g_raid_event_send(sc, G_RAID_NODE_E_WAKE, 0);
}
return (0);
}
@@ -1746,8 +1751,10 @@ g_raid_destroy_volume(struct g_raid_volu
}
G_RAID_DEBUG(2, "Volume %s destroyed.", vol->v_name);
free(vol, M_RAID);
- if (sc->sc_stopping == G_RAID_DESTROY_HARD)
- g_raid_event_send(sc, 0, 0); /* Wake up worker. */
+ if (sc->sc_stopping == G_RAID_DESTROY_HARD) {
+ /* Wake up worker to let it selfdestruct. */
+ g_raid_event_send(sc, G_RAID_NODE_E_WAKE, 0);
+ }
return (0);
}
@@ -1815,7 +1822,7 @@ g_raid_destroy(struct g_raid_softc *sc,
/* Mark node for destruction. */
sc->sc_stopping = G_RAID_DESTROY_HARD;
/* Wake up worker to let it selfdestruct. */
- g_raid_event_send(sc, 0, 0);
+ g_raid_event_send(sc, G_RAID_NODE_E_WAKE, 0);
/* Sleep until node destroyed. */
sx_sleep(&sc->sc_stopping, &sc->sc_lock,
PRIBIO | PDROP, "r:destroy", 0);
Modified: projects/graid/head/sys/geom/raid/g_raid.h
==============================================================================
--- projects/graid/head/sys/geom/raid/g_raid.h Mon Feb 7 15:47:43 2011 (r218405)
+++ projects/graid/head/sys/geom/raid/g_raid.h Mon Feb 7 16:14:12 2011 (r218406)
@@ -240,6 +240,7 @@ struct g_raid_volume {
LIST_ENTRY(g_raid_volume) v_global_next; /* Global list entry. */
};
+#define G_RAID_NODE_E_WAKE 0x00
#define G_RAID_NODE_E_START 0x01
struct g_raid_softc {
More information about the svn-src-projects
mailing list