From d6c0de6fc7e4f9e7ca3a4df17b68042129d24d4d Mon Sep 17 00:00:00 2001 From: Alasdair Kergon Date: Wed, 28 Nov 2001 16:16:44 +0000 Subject: [PATCH] Fix single stripe resizing. --- tools/lvresize.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/lvresize.c b/tools/lvresize.c index 45a21f29e..b377f8e9b 100644 --- a/tools/lvresize.c +++ b/tools/lvresize.c @@ -177,7 +177,8 @@ int lvresize(int argc, char **argv) } /* If extending, find stripes, stripesize & size of last segment */ - if (extents > lv->le_count && (!stripes || !stripesize)) { + if (extents > lv->le_count && + !(stripes == 1 || stripes > 1 && stripesize)) { list_iterate(segh, &lv->segments) { struct stripe_segment *seg; uint32_t sz, str; @@ -198,7 +199,7 @@ int lvresize(int argc, char **argv) seg_stripes = str; } - if (!stripesize) + if (!stripesize && stripes > 1) stripesize = seg_stripesize; if (!stripes) @@ -236,7 +237,7 @@ int lvresize(int argc, char **argv) stripes = seg_stripes; } - if ((size_rest = seg_size % (stripes * vg->extent_size))) { + if ((size_rest = seg_size % stripes)) { log_print("Rounding size (%d extents) down to stripe boundary " "size of last segment (%d extents)", extents, extents - size_rest);