Re: [linux-lvm] Extend/Reduce snapshot not updating VG's used PE count.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Dale,

have integrated this one and probably found the bug for the wrong PE count
after reboot (VG reactivation) as well.

Testing now. Soon to be in CVS.

Regards,
Heinz    -- The LVM Guy --


On Wed, May 01, 2002 at 07:55:04AM -0700, Stephenson, Dale wrote:
> I've noticed that extending or reducing a snapshot doesn't seem to affect
> the used PE count of its volume group (as shown in places like
> /proc/lvm/global).  I haven't noticed any particular ill effects, but it is
> disconcerting.
> 
> The PE count for the PV *is* updated.  Strangely, after reboot (at least
> with lvm 1.0.3) the PE count for the PV does not include PEs used by
> snapshots.  As soon as a single snapshot is created, removed, extended, or
> reduced, it becomes correct again.  Again, I haven't noticed any particular
> ill effects.
> 
> Following is a patch that solves the first problem (but not the second) for
> lvm 1.0.3.  Looking at current CVS, I believe the problem still exists.  The
> first portion of the patch adjusts vg's pe_allocated field in
> __extend_reduce_snapshot().  The second portion of the patch updates the
> snapshot's lv_allocated_snapshot_le field to be correct after a resize in
> lvm_do_lv_extend_reduce().  No user space changes are required.
> 
> Dale J. Stephenson
> steph@snapserver.com
> 
> --- linux/drivers/md/lvm.c.orig	Mon Apr 29 08:50:41 2002
> +++ linux/drivers/md/lvm.c	Mon Apr 29 12:41:29 2002
> @@ -2280,6 +2280,9 @@
>  		return -ENOMEM;
>  	}
>  
> +	vg_ptr->pe_allocated -= old_lv->lv_allocated_snapshot_le;
> +	vg_ptr->pe_allocated += new_lv->lv_allocated_le;
> +
>  	return 0;
>  }
>  
> @@ -2409,6 +2412,8 @@
>  
>  		vfree(old_lv->lv_block_exception);
>  		vfree(old_lv->lv_snapshot_hash_table);
> +		old_lv->lv_allocated_snapshot_le = 
> +			new_lv->lv_allocated_le;
>  		old_lv->lv_remap_end = new_lv->lv_remap_end;
>  		old_lv->lv_block_exception = new_lv->lv_block_exception;
>  		old_lv->lv_snapshot_hash_table =
> 
> _______________________________________________
> linux-lvm mailing list
> linux-lvm@sistina.com
> http://lists.sistina.com/mailman/listinfo/linux-lvm
> read the LVM HOW-TO at http://www.sistina.com/lvm/Pages/howto.html

*** Software bugs are stupid.
    Nevertheless it needs not so stupid people to solve them ***

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Heinz Mauelshagen                                 Sistina Software Inc.
Senior Consultant/Developer                       Am Sonnenhang 11
                                                  56242 Marienrachdorf
                                                  Germany
Mauelshagen@Sistina.com                           +49 2626 141200
                                                       FAX 924446
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

_______________________________________________
linux-lvm mailing list
linux-lvm@sistina.com
http://lists.sistina.com/mailman/listinfo/linux-lvm
read the LVM HOW-TO at http://www.sistina.com/lvm/Pages/howto.html

[Index of Archives]     [Gluster Users]     [Kernel Development]     [Linux Clusters]     [Device Mapper]     [Security]     [Bugtraq]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]

  Powered by Linux