From owner-svn-src-projects@FreeBSD.ORG Wed Feb 16 15:27:54 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 EB31B1065674; Wed, 16 Feb 2011 15:27:54 +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 942D88FC1D; Wed, 16 Feb 2011 15:27:54 +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 p1GFRsVB074598; Wed, 16 Feb 2011 15:27:54 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id p1GFRsel074596; Wed, 16 Feb 2011 15:27:54 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201102161527.p1GFRsel074596@svn.freebsd.org> From: Alexander Motin Date: Wed, 16 Feb 2011 15:27:54 +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: r218740 - 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: Wed, 16 Feb 2011 15:27:55 -0000 Author: mav Date: Wed Feb 16 15:27:54 2011 New Revision: 218740 URL: http://svn.freebsd.org/changeset/base/218740 Log: Fix SINGLE on JMicron. Modified: projects/graid/head/sys/geom/raid/md_jmicron.c Modified: projects/graid/head/sys/geom/raid/md_jmicron.c ============================================================================== --- projects/graid/head/sys/geom/raid/md_jmicron.c Wed Feb 16 15:24:56 2011 (r218739) +++ projects/graid/head/sys/geom/raid/md_jmicron.c Wed Feb 16 15:27:54 2011 (r218740) @@ -390,6 +390,8 @@ g_raid_md_jmicron_supported(int level, i case G_RAID_VOLUME_RL_SINGLE: if (disks != 1) return (0); + if (!force) + return (0); break; case G_RAID_VOLUME_RL_CONCAT: if (disks < 2) @@ -666,7 +668,10 @@ g_raid_md_jmicron_start(struct g_raid_so vol->v_raid_level = G_RAID_VOLUME_RL_RAID1E; vol->v_mediasize = size * mdi->mdio_total_disks / 2; } else if (meta->type == JMICRON_T_CONCAT) { - vol->v_raid_level = G_RAID_VOLUME_RL_CONCAT; + if (mdi->mdio_total_disks == 1) + vol->v_raid_level = G_RAID_VOLUME_RL_SINGLE; + else + vol->v_raid_level = G_RAID_VOLUME_RL_CONCAT; vol->v_mediasize = 0; } else if (meta->type == JMICRON_T_RAID5) { vol->v_raid_level = G_RAID_VOLUME_RL_RAID5; @@ -1190,7 +1195,8 @@ g_raid_md_ctl_jmicron(struct g_raid_md_o vol->v_strip_size = strip; vol->v_disks_count = numdisks; if (level == G_RAID_VOLUME_RL_RAID0 || - level == G_RAID_VOLUME_RL_CONCAT) + level == G_RAID_VOLUME_RL_CONCAT || + level == G_RAID_VOLUME_RL_SINGLE) vol->v_mediasize = size * numdisks; else if (level == G_RAID_VOLUME_RL_RAID1) vol->v_mediasize = size; @@ -1427,7 +1433,8 @@ g_raid_md_write_jmicron(struct g_raid_md meta->type = JMICRON_T_RAID1; else if (vol->v_raid_level == G_RAID_VOLUME_RL_RAID1E) meta->type = JMICRON_T_RAID01; - else if (vol->v_raid_level == G_RAID_VOLUME_RL_CONCAT) + else if (vol->v_raid_level == G_RAID_VOLUME_RL_CONCAT || + vol->v_raid_level == G_RAID_VOLUME_RL_SINGLE) meta->type = JMICRON_T_CONCAT; else meta->type = JMICRON_T_RAID5;