]> sourceware.org Git - lvm2.git/commitdiff
Fix for bz608048 from Taka...
authorJonathan Earl Brassow <jbrassow@redhat.com>
Mon, 28 Jun 2010 14:19:41 +0000 (14:19 +0000)
committerJonathan Earl Brassow <jbrassow@redhat.com>
Mon, 28 Jun 2010 14:19:41 +0000 (14:19 +0000)
The same region size is used for both mirror volume and mirrored
log volume, but when the physical extent size is bigger than region size,
the size of mirror leg for mirrored log is smaller than the region size
and lvcreate command fails.

This patch adjusts a region size of mirrored log to a smaller value of
region size or physical extent size.

[This patch ensures that the region_size of the mirrored log does not
exceed the size of the mirrored log itself, which would violate the
kernel constraint: (region_size <= ti->len).]

Signed-off-by: Takahiro Yasui <takahiro.yasui@hds.com>
Signed-off-by: Jonathan Brassow <jbrassow@redhat.com>
WHATS_NEW
lib/metadata/mirror.c

index 51532b1bbd3ac909a41f4e027105e41f907fda9d..53fe94995d5e62b80067277207c0ec90b0619c23 100644 (file)
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
 Version 2.02.69 - 
 ================================
+  Ensure region_size of mirrored log does not exceed its full size.
   Generate liblvm2app and libdevmapper exported symbols from header file.
   Preload libc locale messages to prevent reading it in memory locked state.
   Fix handling of simultaneous mirror image and mirrored log image failure.
index 08ba85568a6c03e9a5b5dfaa3135ff3b272ebfac..bbdbe323af2ba8283531ee633b08ced1e299a088 100644 (file)
@@ -1816,7 +1816,9 @@ int add_mirror_images(struct cmd_context *cmd, struct logical_volume *lv,
         * create and initialize mirror log
         */
        if (log_count &&
-           !(log_lv = _set_up_mirror_log(cmd, ah, lv, log_count, region_size,
+           !(log_lv = _set_up_mirror_log(cmd, ah, lv, log_count,
+                                         (region_size > lv->vg->extent_size) ?
+                                         lv->vg->extent_size : region_size,
                                          alloc, mirror_in_sync()))) {
                stack;
                goto out_remove_images;
This page took 0.100031 seconds and 5 git commands to generate.