Date: Wed, 16 Feb 2011 15:27:54 +0000 (UTC) From: Alexander Motin <mav@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r218740 - projects/graid/head/sys/geom/raid Message-ID: <201102161527.p1GFRsel074596@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201102161527.p1GFRsel074596>