On Wed, May 20, 2015 at 06:51:30AM -0400, Chen Hanxiao wrote: > Add support for logical partitions. > - count number of logical_partition (we've split partitions list) > - don't count size of extended partition > For it'll duplicate with logical partition, we'll count it later > - we need at leat 1 gap between logical partitions. > so --aligment=1 will be increased by 1 > > Signed-off-by: Chen Hanxiao <chenhanx...@cn.fujitsu.com> > --- > resize/resize.ml | 17 +++++++++++++++-- > 1 file changed, 15 insertions(+), 2 deletions(-) > > diff --git a/resize/resize.ml b/resize/resize.ml > index 92f7304..a0ed713 100644 > --- a/resize/resize.ml > +++ b/resize/resize.ml > @@ -741,8 +741,10 @@ read the man page virt-resize(1). > (* We need some overhead for partitioning. *) > let overhead = > let maxl64 = List.fold_left max 0L in > + (* We need at least 1 sector gap between logical partitions *) > + let alignment = if alignment = 1L then 2L else alignment in > > - let nr_partitions = List.length partitions in > + let nr_partitions = List.length partitions + List.length > logical_partitions in
I don't understand this at all. Why do logical partitions count towards the surplus? I don't think they do. Rich. > let gpt_start_sects = 64L in > let gpt_end_sects = gpt_start_sects in > @@ -770,12 +772,23 @@ read the man page virt-resize(1). > let required = List.fold_left ( > fun total p -> > let newsize = > + (* size of extended partition is calculated seperately *) > + if p.p_type = ContentExtendedPartition then 0L else > + match p.p_operation with > + | OpCopy | OpIgnore -> p.p_part.G.part_size > + | OpDelete -> 0L > + | OpResize newsize -> newsize in > + total +^ newsize > + ) 0L partitions in > + let required = required +^ List.fold_left ( > + fun total p -> > + let newsize = > match p.p_operation with > | OpCopy | OpIgnore -> p.p_part.G.part_size > | OpDelete -> 0L > | OpResize newsize -> newsize in > total +^ newsize > - ) 0L partitions in > + ) 0L logical_partitions in > > let surplus = outsize -^ (required +^ overhead) in > > -- > 2.1.0 > > _______________________________________________ > Libguestfs mailing list > Libguestfs@redhat.com > https://www.redhat.com/mailman/listinfo/libguestfs -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 100 libraries supported. http://fedoraproject.org/wiki/MinGW _______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://www.redhat.com/mailman/listinfo/libguestfs