All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-lvm] Snapshot resizing bug (LVM1)
@ 2003-02-05 12:08 Dale J. Stephenson
  2003-02-06  4:31 ` Heinz J . Mauelshagen
  0 siblings, 1 reply; 7+ messages in thread
From: Dale J. Stephenson @ 2003-02-05 12:08 UTC (permalink / raw)
  To: linux-lvm

I've discovered a problem with using lvreduce/lvextend on LVM.  The 
resized snapshot will have a new exception table and hash table 
allocated for it.  But lvm_hash_link will be called for these in a loop 
that depends on the lv_remap_ptr counter passed down from userspace -- 
which will always be zero.  The result is that existing COW on the 
snapshot are ignored, and the contents of the snapshot can magically 
change to reflect the current state of the source volume.  Reboot (or 
deactivating and reactivating the volume group) should solve the 
problem, although it may be possible in the meantime to store a new COW 
exception for a chunk that already has one.

The fix is simple:

--- lvm.c.orig  Tue Feb  4 18:36:58 2003
+++ lvm.c       Tue Feb  4 18:43:26 2003
@@ -2792,7 +2792,7 @@
                 old_lv->lv_snapshot_hash_mask =
                     new_lv->lv_snapshot_hash_mask;

-               for (e = 0; e < new_lv->lv_remap_ptr; e++)
+               for (e = 0; e < old_lv->lv_remap_ptr; e++)
                         lvm_hash_link(new_lv->lv_block_exception + e,
                                       new_lv->lv_block_exception[e].
                                       rdev_org,

As a side note, why not revert the main LVM cvs tree back to LVM 1.0.6? 
  1.1 is dead.

Dale J. Stephenson
dalestephenson@mac.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2003-02-13 17:16 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-02-05 12:08 [linux-lvm] Snapshot resizing bug (LVM1) Dale J. Stephenson
2003-02-06  4:31 ` Heinz J . Mauelshagen
2003-02-06  6:03   ` Jon Bendtsen
2003-02-06 12:45     ` Heinz J . Mauelshagen
2003-02-12 13:27       ` Debian User
2003-02-13  6:15         ` Heinz J . Mauelshagen
2003-02-13 17:16           ` Heinz J . Mauelshagen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.