summaryrefslogtreecommitdiffstats
path: root/sys/geom
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2013-01-17 00:09:50 +0000
committermav <mav@FreeBSD.org>2013-01-17 00:09:50 +0000
commit559b3a7eace4ecc2123bb9319d05ad25cc53599b (patch)
tree1ed9b4b3ea53f59ae559dfa69b8e54e708a4bb93 /sys/geom
parentb178c1180de1594fd917f3fa292480bb4ab6f620 (diff)
downloadFreeBSD-src-559b3a7eace4ecc2123bb9319d05ad25cc53599b.zip
FreeBSD-src-559b3a7eace4ecc2123bb9319d05ad25cc53599b.tar.gz
Recalculate volume size only for real CONCATs. For SINGLE trust volume
size given by metadata, as it should be correct and in some cases can be smaller then subdisk size.
Diffstat (limited to 'sys/geom')
-rw-r--r--sys/geom/raid/tr_concat.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/geom/raid/tr_concat.c b/sys/geom/raid/tr_concat.c
index f3935d7..60db472 100644
--- a/sys/geom/raid/tr_concat.c
+++ b/sys/geom/raid/tr_concat.c
@@ -124,7 +124,8 @@ g_raid_tr_update_state_concat(struct g_raid_volume *vol)
* Some metadata modules may not know CONCAT volume
* mediasize until all disks connected. Recalculate.
*/
- if (G_RAID_VOLUME_S_ALIVE(s) &&
+ if (vol->v_raid_level == G_RAID_VOLUME_RL_CONCAT &&
+ G_RAID_VOLUME_S_ALIVE(s) &&
!G_RAID_VOLUME_S_ALIVE(vol->v_state)) {
size = 0;
for (i = 0; i < vol->v_disks_count; i++) {
OpenPOWER on IntegriCloud