----- Original Message ----- > From: "Zhilong Liu" <zlliu@xxxxxxxx> > To: "Xiao Ni" <xni@xxxxxxxxxx>, linux-raid@xxxxxxxxxxxxxxx > Cc: "jes sorensen" <jes.sorensen@xxxxxxxxx> > Sent: Tuesday, July 18, 2017 6:34:33 PM > Subject: Re: [PATCH -v3 1/1] mdadm/test: Add one test case for raid5 reshape > > > > On 07/18/2017 04:55 PM, Xiao Ni wrote: > > This case trys to allow raid5 reshape to use backwards direction. > > It changes chunksize after reshape and stop the raid. Then start > > the raid again. > > > > Signed-off-by: Xiao Ni <xni@xxxxxxxxxx> > > Suggested-by: Jes Sorensen <jes.sorensen@xxxxxxxxx> > > Suggested-by: Zhilong Liu <zlliu@xxxxxxxx> > > --- > > test | 8 ++++++++ > > tests/02r5grow | 16 ++++++++++++++++ > > 2 files changed, 24 insertions(+) > > > > diff --git a/test b/test > > index 87e2df2..51da2dc 100755 > > --- a/test > > +++ b/test > > @@ -320,6 +320,14 @@ check() { > > grep -sq "inactive" /proc/mdstat || > > die "array is not inactive!" > > ;; > > + # It only can be used when there is only one raid > > + chunk ) > > + chunk_size=`cat /proc/mdstat | awk -F',' '/chunk/{print $2}' | awk > > '{print $1}' | sed s/k//g` > > Hi, > only from my opinion, how about shrink the command: > # awk -F',' '/chunk/{print $2}' /proc/mdstat | awk -F'[a-z]' '{print $1}' > > + if [ $chunk_size -ne $2 ]; then > > + echo >&2 "chunksize is not right" > > + exit 1 > > + fi Yes, you are a shell expert :) > > how about using the func die() > [ "$chunk_size" -ne "$2" ] && > die "chunk should be $2, but is $chunk_size" I tried this and did a simple test. It gave a error: [root@dell-per210-01 mdadm]# ./test --tests=02r5grow Testing on linux-3.10.0-685.el7.x86_64 kernel tests/02r5grow... FAILED - see /var/tmp/02r5grow.log and /var/tmp/fail02r5grow.log for details ./test: line 80: [: too many arguments It was introduced by this 20d10b4b. It looks like the check have errors: if [ ! -z ${array[@]} -a ${#array[@]} -ge 1 ] Regards Xiao > > Thanks, > -Zhilong > > > + ;; > > * ) > > die "unknown check $1" > > ;; > > diff --git a/tests/02r5grow b/tests/02r5grow > > index 386e82e..20db4cd 100644 > > --- a/tests/02r5grow > > +++ b/tests/02r5grow > > @@ -34,3 +34,19 @@ check nosync > > sh tests/testdev $md0 3 $[size/2] 128 > > > > mdadm -S $md0 > > + > > +# create a raid5 array and change the chunk > > +mdadm -CR $md0 --level raid5 --metadata=1.1 --chunk=32 --raid-disks 3 > > --size $[size/2] $dev1 $dev2 $dev3 > > +check wait > > +check state UUU > > +check chunk 32 > > + > > +mdadm $md0 --grow --chunk=64 > > +check reshape > > +check wait > > +check chunk 64 > > + > > +mdadm -S $md0 > > +mdadm -As > > +check state UUU > > +check chunk 64 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-raid" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html