svn commit: r217373 - projects/graid/head/sys/geom/raid
Alexander Motin
mav at FreeBSD.org
Thu Jan 13 19:25:15 UTC 2011
Author: mav
Date: Thu Jan 13 19:25:15 2011
New Revision: 217373
URL: http://svn.freebsd.org/changeset/base/217373
Log:
Make `graid status` report subdisks statuses together with disk status.
Remove unused (not applicable) G_RAID_DISK_FLAG_XXX constands.
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 Thu Jan 13 18:53:30 2011 (r217372)
+++ projects/graid/head/sys/geom/raid/g_raid.c Thu Jan 13 19:25:15 2011 (r217373)
@@ -667,7 +667,7 @@ g_raid_idle(struct g_raid_volume *vol, i
continue;
G_RAID_DEBUG(1, "Disk %s (device %s) marked as clean.",
g_raid_get_diskname(disk), sc->sc_name);
- disk->d_flags &= ~G_RAID_DISK_FLAG_DIRTY;
+// disk->d_flags &= ~G_RAID_DISK_FLAG_DIRTY;
// g_raid_update_metadata(disk);
}
return (0);
@@ -693,7 +693,7 @@ g_raid_unidle(struct g_raid_volume *vol)
continue;
G_RAID_DEBUG(1, "Disk %s (device %s) marked as dirty.",
g_raid_get_diskname(disk), sc->sc_name);
- disk->d_flags |= G_RAID_DISK_FLAG_DIRTY;
+// disk->d_flags |= G_RAID_DISK_FLAG_DIRTY;
// g_raid_update_metadata(disk);
}
}
@@ -1672,6 +1672,8 @@ g_raid_dumpconf(struct sbuf *sb, const c
{
struct g_raid_softc *sc;
struct g_raid_volume *vol;
+ struct g_raid_subdisk *sd;
+ struct g_raid_disk *disk;
int s;
g_topology_assert();
@@ -1700,38 +1702,24 @@ g_raid_dumpconf(struct sbuf *sb, const c
sx_xunlock(&sc->sc_lock);
g_topology_lock();
} else if (cp != NULL) {
- struct g_raid_disk *disk;
-
disk = cp->private;
if (disk == NULL)
return;
g_topology_unlock();
sx_xlock(&sc->sc_lock);
- sbuf_printf(sb, "%s<Flags>", indent);
- if (disk->d_flags == 0)
- sbuf_printf(sb, "NONE");
- else {
- int first = 1;
-
-#define ADD_FLAG(flag, name) do { \
- if ((disk->d_flags & (flag)) != 0) { \
- if (!first) \
- sbuf_printf(sb, ", "); \
- else \
- first = 0; \
- sbuf_printf(sb, name); \
- } \
-} while (0)
- ADD_FLAG(G_RAID_DISK_FLAG_DIRTY, "DIRTY");
- ADD_FLAG(G_RAID_DISK_FLAG_INACTIVE, "INACTIVE");
- ADD_FLAG(G_RAID_DISK_FLAG_SYNCHRONIZING,
- "SYNCHRONIZING");
- ADD_FLAG(G_RAID_DISK_FLAG_FORCE_SYNC, "FORCE_SYNC");
-#undef ADD_FLAG
- }
- sbuf_printf(sb, "</Flags>\n");
- sbuf_printf(sb, "%s<State>%s</State>\n", indent,
+ sbuf_printf(sb, "%s<State>%s", indent,
g_raid_disk_state2str(disk->d_state));
+ if (!LIST_EMPTY(&disk->d_subdisks)) {
+ sbuf_printf(sb, " (");
+ LIST_FOREACH(sd, &disk->d_subdisks, sd_next) {
+ sbuf_printf(sb, "%s",
+ g_raid_subdisk_state2str(sd->sd_state));
+ if (LIST_NEXT(sd, sd_next))
+ sbuf_printf(sb, ", ");
+ }
+ sbuf_printf(sb, ")");
+ }
+ sbuf_printf(sb, "</State>\n");
sx_xunlock(&sc->sc_lock);
g_topology_lock();
} else {
Modified: projects/graid/head/sys/geom/raid/g_raid.h
==============================================================================
--- projects/graid/head/sys/geom/raid/g_raid.h Thu Jan 13 18:53:30 2011 (r217372)
+++ projects/graid/head/sys/geom/raid/g_raid.h Thu Jan 13 19:25:15 2011 (r217373)
@@ -42,15 +42,6 @@
struct g_raid_md_object;
struct g_raid_tr_object;
-#define G_RAID_DISK_FLAG_DIRTY 0x0000000000000001ULL
-#define G_RAID_DISK_FLAG_SYNCHRONIZING 0x0000000000000002ULL
-#define G_RAID_DISK_FLAG_FORCE_SYNC 0x0000000000000004ULL
-#define G_RAID_DISK_FLAG_INACTIVE 0x0000000000000008ULL
-#define G_RAID_DISK_FLAG_MASK (G_RAID_DISK_FLAG_DIRTY | \
- G_RAID_DISK_FLAG_SYNCHRONIZING | \
- G_RAID_DISK_FLAG_FORCE_SYNC | \
- G_RAID_DISK_FLAG_INACTIVE)
-
#define G_RAID_DEVICE_FLAG_NOAUTOSYNC 0x0000000000000001ULL
#define G_RAID_DEVICE_FLAG_NOFAILSYNC 0x0000000000000002ULL
#define G_RAID_DEVICE_FLAG_MASK (G_RAID_DEVICE_FLAG_NOAUTOSYNC | \
More information about the svn-src-projects
mailing list