From owner-svn-src-projects@FreeBSD.ORG Thu Jan 13 19:25:15 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 709A11065673; Thu, 13 Jan 2011 19:25:15 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5FCDB8FC1B; Thu, 13 Jan 2011 19:25:15 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id p0DJPFxa061065; Thu, 13 Jan 2011 19:25:15 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id p0DJPFFk061062; Thu, 13 Jan 2011 19:25:15 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201101131925.p0DJPFFk061062@svn.freebsd.org> From: Alexander Motin Date: Thu, 13 Jan 2011 19:25:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r217373 - projects/graid/head/sys/geom/raid X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Jan 2011 19:25:15 -0000 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", 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, "\n"); - sbuf_printf(sb, "%s%s\n", indent, + sbuf_printf(sb, "%s%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, "\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 | \