public inbox for lvm2-cvs@sourceware.org
help / color / mirror / Atom feed
* LVM2/lib/activate dev_manager.c
@ 2011-11-15 17:15 zkabelac
0 siblings, 0 replies; 46+ messages in thread
From: zkabelac @ 2011-11-15 17:15 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2011-11-15 17:15:04
Modified files:
lib/activate : dev_manager.c
Log message:
Thin fix tpool layer
Since we support snapshots of thin volumes, we could have more layers,
so we have to check whether tpool layer is going to be inserted.
As the _add_segment_to_dtree() is the only place that adds tpool
segment, we may just check pointer (no strcmp for layer).
Switch to use seg_is_ function instead of lv_is_.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.248&r2=1.249
--- LVM2/lib/activate/dev_manager.c 2011/11/03 14:52:09 1.248
+++ LVM2/lib/activate/dev_manager.c 2011/11/15 17:15:03 1.249
@@ -1455,6 +1455,7 @@
struct lv_segment *seg_present;
const char *target_name;
struct lv_activate_opts lva;
+ static const char tpool_layer[] = "tpool";
/* Ensure required device-mapper targets are loaded */
seg_present = find_cow(seg->lv) ? : seg;
@@ -1499,15 +1500,14 @@
} else if (lv_is_cow(seg->lv) && !layer) {
if (!_add_new_lv_to_dtree(dm, dtree, seg->lv, laopts, "cow"))
return_0;
- } else if (!layer && (lv_is_thin_pool(seg->lv) ||
- lv_is_thin_volume(seg->lv))) {
+ } else if ((layer != tpool_layer) && seg_is_thin(seg)) {
lva = *laopts;
lva.real_pool = 1;
- if (!_add_new_lv_to_dtree(dm, dtree, lv_is_thin_pool(seg->lv) ?
- seg->lv : seg->pool_lv, &lva, "tpool"))
+ if (!_add_new_lv_to_dtree(dm, dtree, seg_is_thin_pool(seg) ?
+ seg->lv : seg->pool_lv, &lva, tpool_layer))
return_0;
} else {
- if (lv_is_thin_pool(seg->lv) &&
+ if (seg_is_thin_pool(seg) &&
!_add_new_lv_to_dtree(dm, dtree, seg->pool_metadata_lv, laopts, NULL))
return_0;
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2012-02-13 17:59 jbrassow
0 siblings, 0 replies; 46+ messages in thread
From: jbrassow @ 2012-02-13 17:59 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: jbrassow@sourceware.org 2012-02-13 17:59:22
Modified files:
lib/activate : dev_manager.c
Log message:
Fix bug that caused RAID devices to be unable to activate if sub-LV was missing.
Commit 02f6f4902fd90709f55e2e97e969ee28c2945c81 introduced a bug that caused
RAID devices to fail to activate if the device for a single sub-LV failed.
The special case of LVM mirror was handled, but not LVM RAID.
EXAMPLE:
[root@bp-01 ~]# devices vg
LV Copy% Devices
lv 100.00 lv_rimage_0(0),lv_rimage_1(0)
[lv_rimage_0] /dev/sde1(1)
[lv_rimage_1] /dev/sdh1(1)
[lv_rmeta_0] /dev/sde1(0)
[lv_rmeta_1] /dev/sdh1(0)
[root@bp-01 ~]# vgchange -an vg
0 logical volume(s) in volume group "vg" now active
[root@bp-01 ~]# off.sh sdh
Turning off sdh
[root@bp-01 ~]# vgchange -ay vg --partial
Partial mode. Incomplete logical volumes will be processed.
Couldn't find device with uuid fbI0YO-GX7x-firU-Vy5o-vzwx-vAKZ-feRxfF.
Cannot activate vg/lv_rimage_1: all segments missing.
0 logical volume(s) in volume group "vg" now active
AFTER this patch:
[root@bp-01 ~]# vgchange -ay vg --partial
Partial mode. Incomplete logical volumes will be processed.
Couldn't find device with uuid fbI0YO-GX7x-firU-Vy5o-vzwx-vAKZ-feRxfF.
1 logical volume(s) in volume group "vg" now active
[root@bp-01 ~]# devices vg
Couldn't find device with uuid fbI0YO-GX7x-firU-Vy5o-vzwx-vAKZ-feRxfF.
LV Copy% Devices
lv 100.00 lv_rimage_0(0),lv_rimage_1(0)
[lv_rimage_0] /dev/sde1(1)
[lv_rimage_1] unknown device(1)
[lv_rmeta_0] /dev/sde1(0)
[lv_rmeta_1] unknown device(0)
[root@bp-01 ~]# dmsetup table vg-lv; dmsetup status vg-lv
0 1024000 raid raid1 3 0 region_size 1024 2 253:2 253:3 - -
0 1024000 raid raid1 2 AD 1024000/1024000
No WHATSNEW update necessary because this is an intrarelease fix.
brassow
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.270&r2=1.271
--- LVM2/lib/activate/dev_manager.c 2012/02/01 13:47:27 1.270
+++ LVM2/lib/activate/dev_manager.c 2012/02/13 17:59:21 1.271
@@ -1449,11 +1449,14 @@
}
/*
- * Mirrors activate LVs replaced with error targets
+ * Mirrors activate LVs replaced with error targets and
+ * RAID can handle non-accessible sub-LVs.
*
* TODO: Can we eventually skip to activate such LVs ?
*/
if (!num_existing_areas &&
+ !strstr(seg->lv->name, "_rmeta_") &&
+ !strstr(seg->lv->name, "_rimage_") &&
!strstr(seg->lv->name, "_mimage_") &&
!((name = strstr(seg->lv->name, "_mlog")) && !name[5])) {
log_error("Cannot activate %s/%s: all segments missing.",
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2012-01-25 11:10 agk
0 siblings, 0 replies; 46+ messages in thread
From: agk @ 2012-01-25 11:10 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2012-01-25 11:10:07
Modified files:
lib/activate : dev_manager.c
Log message:
Make commented out code more obvious
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.267&r2=1.268
--- LVM2/lib/activate/dev_manager.c 2012/01/25 09:10:14 1.267
+++ LVM2/lib/activate/dev_manager.c 2012/01/25 11:10:06 1.268
@@ -1201,10 +1201,11 @@
uint32_t s;
struct seg_list *sl;
struct lv_segment *seg = first_seg(lv);
- /* FIXME: Resolve skip_childrens
+#if 0
+ /* FIXME For dm_tree_node_skip_children optimisation below */
struct dm_tree_node *thin_node;
const char *uuid;
- */
+#endif
if ((!origin_only || lv_is_thin_volume(lv)) &&
!_add_dev_to_dtree(dm, dtree, lv, NULL))
@@ -1239,14 +1240,15 @@
return_0;
if (lv_is_thin_volume(lv)) {
- /* FIXME: Resolve skip_childrens
+#if 0
+ /* FIXME Implement dm_tree_node_skip_children optimisation */
if (origin_only) {
if (!(uuid = build_dm_uuid(dm->mem, lv->lvid.s, NULL)))
return_0;
if ((thin_node = dm_tree_find_node_by_uuid(dtree, uuid)))
- dm_tree_node_skip_childrens(thin_node, 1);
+ dm_tree_node_skip_children(thin_node, 1);
}
- */
+#endif
/* Add thin pool LV layer */
lv = seg->pool_lv;
seg = first_seg(lv);
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2012-01-19 15:19 zkabelac
0 siblings, 0 replies; 46+ messages in thread
From: zkabelac @ 2012-01-19 15:19 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2012-01-19 15:19:18
Modified files:
lib/activate : dev_manager.c
Log message:
Thin rename local static
Use '_' for local const char.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.257&r2=1.258
--- LVM2/lib/activate/dev_manager.c 2012/01/12 01:51:56 1.257
+++ LVM2/lib/activate/dev_manager.c 2012/01/19 15:19:18 1.258
@@ -59,7 +59,7 @@
const char *old_name;
};
-static const char thin_layer[] = "tpool";
+static const char _thin_layer[] = "tpool";
int read_only_lv(struct logical_volume *lv, struct lv_activate_opts *laopts)
{
@@ -879,13 +879,12 @@
char *name;
const char *dlid;
- /*
- * Build a name for the top layer.
- */
- if (!(name = dm_build_dm_name(dm->mem, lv->vg->name, lv->name, thin_layer)))
+ /* Build a name for the top layer */
+ if (!(name = dm_build_dm_name(dm->mem, lv->vg->name, lv->name,
+ _thin_layer)))
return_0;
- if (!(dlid = build_dm_uuid(dm->mem, lv->lvid.s, thin_layer)))
+ if (!(dlid = build_dm_uuid(dm->mem, lv->lvid.s, _thin_layer)))
return_0;
log_debug("Getting device status percentage for %s", name);
@@ -1166,7 +1165,7 @@
/* FIXME code from _create_partial_dtree() should be moved here */
if (!_add_lv_to_dtree(dm, dtree, seg_lv(seg, 0), origin_only))
return_0;
- if (!_add_dev_to_dtree(dm, dtree, lv, thin_layer))
+ if (!_add_dev_to_dtree(dm, dtree, lv, _thin_layer))
return_0;
} else if (lv_is_thin_volume(lv) &&
!_add_lv_to_dtree(dm, dtree, seg->pool_lv, origin_only))
@@ -1559,11 +1558,11 @@
} else if (lv_is_cow(seg->lv) && !layer) {
if (!_add_new_lv_to_dtree(dm, dtree, seg->lv, laopts, "cow"))
return_0;
- } else if ((layer != thin_layer) && seg_is_thin(seg)) {
+ } else if ((layer != _thin_layer) && seg_is_thin(seg)) {
lva = *laopts;
lva.real_pool = 1;
if (!_add_new_lv_to_dtree(dm, dtree, seg_is_thin_pool(seg) ?
- seg->lv : seg->pool_lv, &lva, thin_layer))
+ seg->lv : seg->pool_lv, &lva, _thin_layer))
return_0;
} else {
if (seg_is_thin_pool(seg) &&
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2011-12-21 12:55 zkabelac
0 siblings, 0 replies; 46+ messages in thread
From: zkabelac @ 2011-12-21 12:55 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2011-12-21 12:55:22
Modified files:
lib/activate : dev_manager.c
Log message:
Thin move layer suffix into local static const
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.253&r2=1.254
--- LVM2/lib/activate/dev_manager.c 2011/11/28 20:37:51 1.253
+++ LVM2/lib/activate/dev_manager.c 2011/12/21 12:55:22 1.254
@@ -59,6 +59,8 @@
const char *old_name;
};
+static const char thin_layer[] = "tpool";
+
static int _read_only_lv(struct logical_volume *lv)
{
return (!(lv->vg->status & LVM_WRITE) || !(lv->status & LVM_WRITE));
@@ -1140,7 +1142,7 @@
/* FIXME code from _create_partial_dtree() should be moved here */
if (!_add_lv_to_dtree(dm, dtree, seg_lv(seg, 0), origin_only))
return_0;
- if (!_add_dev_to_dtree(dm, dtree, lv, "tpool"))
+ if (!_add_dev_to_dtree(dm, dtree, lv, thin_layer))
return_0;
} else if (lv_is_thin_volume(lv) &&
!_add_lv_to_dtree(dm, dtree, seg->pool_lv, origin_only))
@@ -1489,7 +1491,6 @@
struct lv_segment *seg_present;
const char *target_name;
struct lv_activate_opts lva;
- static const char tpool_layer[] = "tpool";
/* Ensure required device-mapper targets are loaded */
seg_present = find_cow(seg->lv) ? : seg;
@@ -1534,11 +1535,11 @@
} else if (lv_is_cow(seg->lv) && !layer) {
if (!_add_new_lv_to_dtree(dm, dtree, seg->lv, laopts, "cow"))
return_0;
- } else if ((layer != tpool_layer) && seg_is_thin(seg)) {
+ } else if ((layer != thin_layer) && seg_is_thin(seg)) {
lva = *laopts;
lva.real_pool = 1;
if (!_add_new_lv_to_dtree(dm, dtree, seg_is_thin_pool(seg) ?
- seg->lv : seg->pool_lv, &lva, tpool_layer))
+ seg->lv : seg->pool_lv, &lva, thin_layer))
return_0;
} else {
if (seg_is_thin_pool(seg) &&
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2011-11-15 17:25 zkabelac
0 siblings, 0 replies; 46+ messages in thread
From: zkabelac @ 2011-11-15 17:25 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2011-11-15 17:25:05
Modified files:
lib/activate : dev_manager.c
Log message:
Thin clean
Reuse seg pointer already set in _add_lv_to_dtree to have the
value of first_seg(lv) (and is used in other parts of this function).
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.250&r2=1.251
--- LVM2/lib/activate/dev_manager.c 2011/11/15 17:21:02 1.250
+++ LVM2/lib/activate/dev_manager.c 2011/11/15 17:25:05 1.251
@@ -1100,17 +1100,16 @@
return_0;
if (lv_is_thin_pool(lv)) {
- if (!_add_dev_to_dtree(dm, dtree, lv, "tpool"))
- return_0;
- if (!_add_lv_to_dtree(dm, dtree, first_seg(lv)->pool_metadata_lv, origin_only))
+ if (!_add_lv_to_dtree(dm, dtree, seg->pool_metadata_lv, origin_only))
return_0;
/* FIXME code from _create_partial_dtree() should be moved here */
- if (!_add_lv_to_dtree(dm, dtree, seg_lv(first_seg(lv), 0), origin_only))
+ if (!_add_lv_to_dtree(dm, dtree, seg_lv(seg, 0), origin_only))
return_0;
- } else if (lv_is_thin_volume(lv)) {
- if (!_add_lv_to_dtree(dm, dtree, first_seg(lv)->pool_lv, origin_only))
+ if (!_add_dev_to_dtree(dm, dtree, lv, "tpool"))
return_0;
- }
+ } else if (lv_is_thin_volume(lv) &&
+ !_add_lv_to_dtree(dm, dtree, seg->pool_lv, origin_only))
+ return_0;
return 1;
}
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2011-11-15 17:21 zkabelac
0 siblings, 0 replies; 46+ messages in thread
From: zkabelac @ 2011-11-15 17:21 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2011-11-15 17:21:02
Modified files:
lib/activate : dev_manager.c
Log message:
Simplify iteration
Since nothing is removed in dm_list snapshot_segs during the loop,
there is no reason to use _safe iteration, so switch to simplier
dm_list_iterate().
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.249&r2=1.250
--- LVM2/lib/activate/dev_manager.c 2011/11/15 17:15:03 1.249
+++ LVM2/lib/activate/dev_manager.c 2011/11/15 17:21:02 1.250
@@ -1118,7 +1118,7 @@
static struct dm_tree *_create_partial_dtree(struct dev_manager *dm, struct logical_volume *lv, int origin_only)
{
struct dm_tree *dtree;
- struct dm_list *snh, *snht;
+ struct dm_list *snh;
struct lv_segment *seg;
uint32_t s;
@@ -1132,7 +1132,7 @@
/* Add any snapshots of this LV */
if (!origin_only && lv_is_origin(lv))
- dm_list_iterate_safe(snh, snht, &lv->snapshot_segs)
+ dm_list_iterate(snh, &lv->snapshot_segs)
if (!_add_lv_to_dtree(dm, dtree, dm_list_struct_base(snh, struct lv_segment, origin_list)->cow, 0))
goto_bad;
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2011-10-28 20:34 zkabelac
0 siblings, 0 replies; 46+ messages in thread
From: zkabelac @ 2011-10-28 20:34 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2011-10-28 20:34:45
Modified files:
lib/activate : dev_manager.c
Log message:
Avoid creation of /dev/vg/thinpool
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.246&r2=1.247
--- LVM2/lib/activate/dev_manager.c 2011/10/17 14:18:07 1.246
+++ LVM2/lib/activate/dev_manager.c 2011/10/28 20:34:45 1.247
@@ -892,7 +892,8 @@
* Is this top-level and visible device?
* If not, create just the /dev/mapper content.
*/
- if (layer || !lv_is_visible(lv))
+ /* FIXME: add target's method for this */
+ if (layer || !lv_is_visible(lv) || lv_is_thin_pool(lv))
udev_flags |= DM_UDEV_DISABLE_SUBSYSTEM_RULES_FLAG |
DM_UDEV_DISABLE_DISK_RULES_FLAG |
DM_UDEV_DISABLE_OTHER_RULES_FLAG;
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2011-10-11 10:02 zkabelac
0 siblings, 0 replies; 46+ messages in thread
From: zkabelac @ 2011-10-11 10:02 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2011-10-11 10:02:28
Modified files:
lib/activate : dev_manager.c
Log message:
Use constant for the repeated dlid size specification
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.243&r2=1.244
--- LVM2/lib/activate/dev_manager.c 2011/10/11 09:03:33 1.243
+++ LVM2/lib/activate/dev_manager.c 2011/10/11 10:02:28 1.244
@@ -1852,6 +1852,7 @@
static int _tree_action(struct dev_manager *dm, struct logical_volume *lv,
struct lv_activate_opts *laopts, action_t action)
{
+ const size_t DLID_SIZE = ID_LEN + sizeof(UUID_PREFIX) - 1;
struct dm_tree *dtree;
struct dm_tree_node *root;
char *dlid;
@@ -1882,7 +1883,7 @@
if (retry_deactivation())
dm_tree_retry_remove(root);
/* Deactivate LV and all devices it references that nothing else has open. */
- if (!dm_tree_deactivate_children(root, dlid, ID_LEN + sizeof(UUID_PREFIX) - 1))
+ if (!dm_tree_deactivate_children(root, dlid, DLID_SIZE))
goto_out;
if (!_remove_lv_symlinks(dm, root))
log_warn("Failed to remove all device symlinks associated with %s.", lv->name);
@@ -1893,7 +1894,7 @@
dm_tree_use_no_flush_suspend(root);
/* Fall through */
case SUSPEND_WITH_LOCKFS:
- if (!dm_tree_suspend_children(root, dlid, ID_LEN + sizeof(UUID_PREFIX) - 1))
+ if (!dm_tree_suspend_children(root, dlid, DLID_SIZE))
goto_out;
break;
case PRELOAD:
@@ -1903,14 +1904,14 @@
goto_out;
/* Preload any devices required before any suspensions */
- if (!dm_tree_preload_children(root, dlid, ID_LEN + sizeof(UUID_PREFIX) - 1))
+ if (!dm_tree_preload_children(root, dlid, DLID_SIZE))
goto_out;
if (dm_tree_node_size_changed(root))
dm->flush_required = 1;
if (action == ACTIVATE) {
- if (!dm_tree_activate_children(root, dlid, ID_LEN + sizeof(UUID_PREFIX) - 1))
+ if (!dm_tree_activate_children(root, dlid, DLID_SIZE))
goto_out;
if (!_create_lv_symlinks(dm, root))
log_warn("Failed to create symlinks for %s.", lv->name);
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2011-10-11 9:03 zkabelac
0 siblings, 0 replies; 46+ messages in thread
From: zkabelac @ 2011-10-11 9:03 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2011-10-11 09:03:33
Modified files:
lib/activate : dev_manager.c
Log message:
Use shorter way for if()
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.242&r2=1.243
--- LVM2/lib/activate/dev_manager.c 2011/10/11 09:02:20 1.242
+++ LVM2/lib/activate/dev_manager.c 2011/10/11 09:03:33 1.243
@@ -1224,8 +1224,7 @@
* we don't have the struct definition available.
*/
struct dm_tree **tree = (struct dm_tree **) node;
- dlid = _add_error_device(dm, *tree, seg, s);
- if (!dlid)
+ if (!(dlid = _add_error_device(dm, *tree, seg, s)))
return_0;
if (!dm_tree_node_add_target_area(node, NULL, dlid, extent_size * seg_le(seg, s)))
return_0;
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2011-10-11 9:02 zkabelac
0 siblings, 0 replies; 46+ messages in thread
From: zkabelac @ 2011-10-11 9:02 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2011-10-11 09:02:20
Modified files:
lib/activate : dev_manager.c
Log message:
Skip backtrace after log_error
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.241&r2=1.242
--- LVM2/lib/activate/dev_manager.c 2011/10/11 09:01:38 1.241
+++ LVM2/lib/activate/dev_manager.c 2011/10/11 09:02:20 1.242
@@ -1193,7 +1193,7 @@
if (segno < 0) {
log_error("_add_error_device called with bad segment");
- return_NULL;
+ return NULL;
}
sprintf(errid, "missing_%d_%d", segno, s);
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2011-10-11 9:01 zkabelac
0 siblings, 0 replies; 46+ messages in thread
From: zkabelac @ 2011-10-11 9:01 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2011-10-11 09:01:39
Modified files:
lib/activate : dev_manager.c
Log message:
Replace with debug
Since the dm_tree_create already reports reason of error,
use log_debug for this message.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.240&r2=1.241
--- LVM2/lib/activate/dev_manager.c 2011/10/11 08:59:42 1.240
+++ LVM2/lib/activate/dev_manager.c 2011/10/11 09:01:38 1.241
@@ -1147,7 +1147,7 @@
uint32_t s;
if (!(dtree = dm_tree_create())) {
- log_error("Partial dtree creation failed for %s.", lv->name);
+ log_debug("Partial dtree creation failed for %s.", lv->name);
return NULL;
}
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2011-10-11 8:54 zkabelac
0 siblings, 0 replies; 46+ messages in thread
From: zkabelac @ 2011-10-11 8:54 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2011-10-11 08:54:02
Modified files:
lib/activate : dev_manager.c
Log message:
Skip r assignment
Cosmetic, since r is already 0 for the error path, no need to assign it there,
and r is assigned to 1 after switch command.
Also makes the code more readable.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.237&r2=1.238
--- LVM2/lib/activate/dev_manager.c 2011/10/06 14:45:41 1.237
+++ LVM2/lib/activate/dev_manager.c 2011/10/11 08:54:01 1.238
@@ -1882,9 +1882,8 @@
case DEACTIVATE:
if (retry_deactivation())
dm_tree_retry_remove(root);
- /* Deactivate LV and all devices it references that nothing else has open. */
- r = dm_tree_deactivate_children(root, dlid, ID_LEN + sizeof(UUID_PREFIX) - 1);
- if (!r)
+ /* Deactivate LV and all devices it references that nothing else has open. */
+ if (!dm_tree_deactivate_children(root, dlid, ID_LEN + sizeof(UUID_PREFIX) - 1))
goto_out;
if (!_remove_lv_symlinks(dm, root))
log_error("Failed to remove all device symlinks associated with %s.", lv->name);
@@ -1905,16 +1904,14 @@
goto_out;
/* Preload any devices required before any suspensions */
- r = dm_tree_preload_children(root, dlid, ID_LEN + sizeof(UUID_PREFIX) - 1);
- if (!r)
+ if (!dm_tree_preload_children(root, dlid, ID_LEN + sizeof(UUID_PREFIX) - 1))
goto_out;
if (dm_tree_node_size_changed(root))
dm->flush_required = 1;
if (action == ACTIVATE) {
- r = dm_tree_activate_children(root, dlid, ID_LEN + sizeof(UUID_PREFIX) - 1);
- if (!r)
+ if (!dm_tree_activate_children(root, dlid, ID_LEN + sizeof(UUID_PREFIX) - 1))
goto_out;
if (!_create_lv_symlinks(dm, root)) {
log_error("Failed to create symlinks for %s.", lv->name);
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2011-10-03 18:24 zkabelac
0 siblings, 0 replies; 46+ messages in thread
From: zkabelac @ 2011-10-03 18:24 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2011-10-03 18:24:49
Modified files:
lib/activate : dev_manager.c
Log message:
Add preload support for thin and thin_pool
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.234&r2=1.235
--- LVM2/lib/activate/dev_manager.c 2011/09/29 08:56:38 1.234
+++ LVM2/lib/activate/dev_manager.c 2011/10/03 18:24:47 1.235
@@ -1098,6 +1098,16 @@
!_add_partial_replicator_to_dtree(dm, dtree, lv))
return_0;
+ if (lv_is_thin_pool(lv)) {
+ if (!_add_lv_to_dtree(dm, dtree, first_seg(lv)->pool_metadata_lv, origin_only))
+ return_0;
+ if (!_add_lv_to_dtree(dm, dtree, seg_lv(first_seg(lv), 0), origin_only))
+ return_0;
+ } else if (lv_is_thin_volume(lv)) {
+ if (!_add_lv_to_dtree(dm, dtree, first_seg(lv)->pool_lv, origin_only))
+ return_0;
+ }
+
return 1;
}
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2011-07-05 1:01 agk
0 siblings, 0 replies; 46+ messages in thread
From: agk @ 2011-07-05 1:01 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2011-07-05 01:01:19
Modified files:
lib/activate : dev_manager.c
Log message:
Fix conditions using no_merging: only those using lv_is_merging_cow() should
have been converted, not pure lv_is_cow ones.
(Merging has no impact on how the pre-merged cow segment itself is loaded.)
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.223&r2=1.224
--- LVM2/lib/activate/dev_manager.c 2011/07/04 14:56:58 1.223
+++ LVM2/lib/activate/dev_manager.c 2011/07/05 01:01:19 1.224
@@ -1436,7 +1436,7 @@
}
if (!_add_new_lv_to_dtree(dm, dtree, seg->lv, laopts, "real"))
return_0;
- } else if (!laopts->no_merging && lv_is_cow(seg->lv) && !layer) {
+ } else if (lv_is_cow(seg->lv) && !layer) {
if (!_add_new_lv_to_dtree(dm, dtree, seg->lv, laopts, "cow"))
return_0;
} else {
@@ -1457,7 +1457,7 @@
if (!_add_snapshot_merge_target_to_dtree(dm, dnode, seg->lv))
return_0;
}
- } else if (!laopts->no_merging && lv_is_cow(seg->lv) && !layer) {
+ } else if (lv_is_cow(seg->lv) && !layer) {
if (!_add_snapshot_target_to_dtree(dm, dnode, seg->lv, laopts))
return_0;
} else if (!_add_target_to_dtree(dm, dnode, seg, laopts))
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2011-07-04 14:56 agk
0 siblings, 0 replies; 46+ messages in thread
From: agk @ 2011-07-04 14:56 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2011-07-04 14:56:58
Modified files:
lib/activate : dev_manager.c
Log message:
reinstate accidentally-removed lines to fix pvmove again
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.222&r2=1.223
--- LVM2/lib/activate/dev_manager.c 2011/07/01 14:09:19 1.222
+++ LVM2/lib/activate/dev_manager.c 2011/07/04 14:56:58 1.223
@@ -1802,10 +1802,6 @@
int dev_manager_preload(struct dev_manager *dm, struct logical_volume *lv,
struct lv_activate_opts *laopts, int *flush_required)
{
- /* FIXME Update the pvmove implementation! */
- if ((lv->status & PVMOVE) || (lv->status & LOCKED))
- return 1;
-
if (!_tree_action(dm, lv, laopts, PRELOAD))
return 0;
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2010-12-22 15:32 zkabelac
0 siblings, 0 replies; 46+ messages in thread
From: zkabelac @ 2010-12-22 15:32 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2010-12-22 15:32:16
Modified files:
lib/activate : dev_manager.c
Log message:
Hide unused code into if 0
Make it obvious for lcov coverage and static analyzis we
are not interested in this piece of code.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.209&r2=1.210
--- LVM2/lib/activate/dev_manager.c 2010/12/20 14:04:43 1.209
+++ LVM2/lib/activate/dev_manager.c 2010/12/22 15:32:15 1.210
@@ -306,6 +306,7 @@
return dinfo;
}
+#if 0
/* FIXME Interface must cope with multiple targets */
static int _status_run(const char *name, const char *uuid,
unsigned long long *s, unsigned long long *l,
@@ -383,6 +384,7 @@
return 0;
}
+#endif
int lv_has_target_type(struct dm_pool *mem, struct logical_volume *lv,
const char *layer, const char *target_type)
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2010-12-20 14:04 zkabelac
0 siblings, 0 replies; 46+ messages in thread
From: zkabelac @ 2010-12-20 14:04 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2010-12-20 14:04:43
Modified files:
lib/activate : dev_manager.c
Log message:
Remove dead assignment of segh
Variable 'segh' is never read again after this assignment.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.208&r2=1.209
--- LVM2/lib/activate/dev_manager.c 2010/12/08 19:26:36 1.208
+++ LVM2/lib/activate/dev_manager.c 2010/12/20 14:04:43 1.209
@@ -526,7 +526,7 @@
total_numerator, total_denominator);
} while (next);
- if (lv && (segh = dm_list_next(&lv->segments, segh))) {
+ if (lv && dm_list_next(&lv->segments, segh)) {
log_error("Number of segments in active LV %s does not "
"match metadata", lv->name);
goto out;
@@ -620,7 +620,7 @@
} while (next);
- if ((segh = dm_list_next(&lv->segments, segh))) {
+ if (dm_list_next(&lv->segments, segh)) {
log_error("Number of segments in active LV %s does not "
"match metadata", lv->name);
goto out;
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2010-05-14 12:39 mbroz
0 siblings, 0 replies; 46+ messages in thread
From: mbroz @ 2010-05-14 12:39 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: mbroz@sourceware.org 2010-05-14 12:39:52
Modified files:
lib/activate : dev_manager.c
Log message:
Another one internal device layer fix...
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.190&r2=1.191
--- LVM2/lib/activate/dev_manager.c 2010/05/14 12:30:43 1.190
+++ LVM2/lib/activate/dev_manager.c 2010/05/14 12:39:52 1.191
@@ -180,10 +180,9 @@
!dm_split_lvm_name(NULL, NULL, &vgname, &lvname, &layer))
goto_out;
- if (lvname && (is_reserved_lvname(lvname) || (layer && *layer))) {
+ if (lvname && (is_reserved_lvname(lvname) || *layer)) {
log_debug("%s: Reserved internal LV device %s/%s%s%s not usable.",
- dev_name(dev), vgname, lvname, layer ? "-" : "",
- layer ?: "");
+ dev_name(dev), vgname, lvname, *layer ? "-" : "", layer);
goto out;
}
}
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2010-05-14 12:30 mbroz
0 siblings, 0 replies; 46+ messages in thread
From: mbroz @ 2010-05-14 12:30 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: mbroz@sourceware.org 2010-05-14 12:30:45
Modified files:
lib/activate : dev_manager.c
Log message:
Fix empty layer detection is scan devices.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.189&r2=1.190
--- LVM2/lib/activate/dev_manager.c 2010/05/14 12:03:32 1.189
+++ LVM2/lib/activate/dev_manager.c 2010/05/14 12:30:43 1.190
@@ -180,7 +180,7 @@
!dm_split_lvm_name(NULL, NULL, &vgname, &lvname, &layer))
goto_out;
- if (lvname && (is_reserved_lvname(lvname) || layer)) {
+ if (lvname && (is_reserved_lvname(lvname) || (layer && *layer))) {
log_debug("%s: Reserved internal LV device %s/%s%s%s not usable.",
dev_name(dev), vgname, lvname, layer ? "-" : "",
layer ?: "");
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2010-05-14 12:03 mbroz
0 siblings, 0 replies; 46+ messages in thread
From: mbroz @ 2010-05-14 12:03 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: mbroz@sourceware.org 2010-05-14 12:03:32
Modified files:
lib/activate : dev_manager.c
Log message:
Fix device_is_usable to properly detect only internal LV names.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.188&r2=1.189
--- LVM2/lib/activate/dev_manager.c 2010/05/13 18:38:38 1.188
+++ LVM2/lib/activate/dev_manager.c 2010/05/14 12:03:32 1.189
@@ -133,7 +133,7 @@
const char *name, *uuid;
uint64_t start, length;
char *target_type = NULL;
- char *params;
+ char *params, *vgname = NULL, *lvname, *layer;
void *next = NULL;
int r = 0;
@@ -175,15 +175,23 @@
/* FIXME Also check dependencies? */
/* Check internal lvm devices */
- if (is_reserved_lvname(name) && uuid &&
- !strncmp(uuid, UUID_PREFIX, sizeof(UUID_PREFIX) - 1)) {
- log_debug("%s: Reserved internal LVM device not usable.", dev_name(dev));
- goto out;
+ if (uuid && !strncmp(uuid, UUID_PREFIX, sizeof(UUID_PREFIX) - 1)) {
+ if (!(vgname = dm_strdup(name)) ||
+ !dm_split_lvm_name(NULL, NULL, &vgname, &lvname, &layer))
+ goto_out;
+
+ if (lvname && (is_reserved_lvname(lvname) || layer)) {
+ log_debug("%s: Reserved internal LV device %s/%s%s%s not usable.",
+ dev_name(dev), vgname, lvname, layer ? "-" : "",
+ layer ?: "");
+ goto out;
+ }
}
r = 1;
out:
+ dm_free(vgname);
dm_task_destroy(dmt);
return r;
}
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2010-02-23 15:49 mornfall
0 siblings, 0 replies; 46+ messages in thread
From: mornfall @ 2010-02-23 15:49 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: mornfall@sourceware.org 2010-02-23 15:49:52
Modified files:
lib/activate : dev_manager.c
Log message:
Add _mlog devices to dependency trees using UUID, not name, in activation.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.181&r2=1.182
--- LVM2/lib/activate/dev_manager.c 2010/02/17 22:59:46 1.181
+++ LVM2/lib/activate/dev_manager.c 2010/02/23 15:49:52 1.182
@@ -840,7 +840,8 @@
if (!_add_dev_to_dtree(dm, dtree, lv, "cow"))
return_0;
- if (!_add_dev_to_dtree(dm, dtree, lv, "_mlog"))
+ if ((lv->status & MIRRORED) && first_seg(lv)->log_lv &&
+ !_add_dev_to_dtree(dm, dtree, first_seg(lv)->log_lv, NULL))
return_0;
return 1;
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2010-02-10 14:38 snitzer
0 siblings, 0 replies; 46+ messages in thread
From: snitzer @ 2010-02-10 14:38 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: snitzer@sourceware.org 2010-02-10 14:38:24
Modified files:
lib/activate : dev_manager.c
Log message:
Add 'fail_if_percent_unsupported' arg to _percent() and _percent_run().
We unfortunately don't yet _know_, in dev_manager_snapshot_percent(), if
a snapshot-merge target is active (activation is deferred if dev is
open); so we can't short-circuit origin devices based purely on existing
LVM LV attributes.
Set 'fail_if_percent_unsupported' in dev_manager_snapshot_percent() for
a merging origin LV, otherwise passing unsupported LV types to _percent
will lead to a default successful return with percent_range as
PERCENT_100.
For a merging origin, PERCENT_100 will result in a polldaemon that runs
infinitely (because completion is PERCENT_0).
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.179&r2=1.180
--- LVM2/lib/activate/dev_manager.c 2010/02/08 23:28:06 1.179
+++ LVM2/lib/activate/dev_manager.c 2010/02/10 14:38:24 1.180
@@ -423,7 +423,7 @@
const char *target_type, int wait,
const struct logical_volume *lv, float *percent,
percent_range_t *overall_percent_range,
- uint32_t *event_nr)
+ uint32_t *event_nr, int fail_if_percent_unsupported)
{
int r = 0;
struct dm_task *dmt;
@@ -516,10 +516,8 @@
/* above ->target_percent() was not executed! */
/* FIXME why return PERCENT_100 et. al. in this case? */
*overall_percent_range = PERCENT_100;
- if (lv && lv_is_merging_origin(lv)) {
- /* must fail in snapshot-merge case */
+ if (fail_if_percent_unsupported)
goto_out;
- }
} else
*overall_percent_range = combined_percent_range;
}
@@ -535,20 +533,24 @@
static int _percent(struct dev_manager *dm, const char *name, const char *dlid,
const char *target_type, int wait,
const struct logical_volume *lv, float *percent,
- percent_range_t *overall_percent_range, uint32_t *event_nr)
+ percent_range_t *overall_percent_range, uint32_t *event_nr,
+ int fail_if_percent_unsupported)
{
if (dlid && *dlid) {
if (_percent_run(dm, NULL, dlid, target_type, wait, lv, percent,
- overall_percent_range, event_nr))
+ overall_percent_range, event_nr,
+ fail_if_percent_unsupported))
return 1;
else if (_percent_run(dm, NULL, dlid + sizeof(UUID_PREFIX) - 1,
target_type, wait, lv, percent,
- overall_percent_range, event_nr))
+ overall_percent_range, event_nr,
+ fail_if_percent_unsupported))
return 1;
}
if (name && _percent_run(dm, name, NULL, target_type, wait, lv, percent,
- overall_percent_range, event_nr))
+ overall_percent_range, event_nr,
+ fail_if_percent_unsupported))
return 1;
return 0;
@@ -607,6 +609,22 @@
{
char *name;
const char *dlid;
+ int fail_if_percent_unsupported = 0;
+
+ if (lv_is_merging_origin(lv)) {
+ /*
+ * Set 'fail_if_percent_unsupported', otherwise passing
+ * unsupported LV types to _percent will lead to a default
+ * successful return with percent_range as PERCENT_100.
+ * - For a merging origin, this will result in a polldaemon
+ * that runs infinitely (because completion is PERCENT_0)
+ * - We unfortunately don't yet _know_ if a snapshot-merge
+ * target is active (activation is deferred if dev is open);
+ * so we can't short-circuit origin devices based purely on
+ * existing LVM LV attributes.
+ */
+ fail_if_percent_unsupported = 1;
+ }
/*
* Build a name for the top layer.
@@ -621,8 +639,8 @@
* Try and get some info on this device.
*/
log_debug("Getting device status percentage for %s", name);
- if (!(_percent(dm, name, dlid, "snapshot", 0, lv, percent,
- percent_range, NULL)))
+ if (!(_percent(dm, name, dlid, "snapshot", 0, NULL, percent,
+ percent_range, NULL, fail_if_percent_unsupported)))
return_0;
/* FIXME dm_pool_free ? */
@@ -657,7 +675,7 @@
log_debug("Getting device mirror status percentage for %s", name);
if (!(_percent(dm, name, dlid, "mirror", wait, lv, percent,
- percent_range, event_nr)))
+ percent_range, event_nr, 0)))
return_0;
return 1;
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2010-01-22 13:28 snitzer
0 siblings, 0 replies; 46+ messages in thread
From: snitzer @ 2010-01-22 13:28 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: snitzer@sourceware.org 2010-01-22 13:28:55
Modified files:
lib/activate : dev_manager.c
Log message:
Removed inactive_table check from _lv_has_target_type. This check
doesn't offer any benefit (that I can recall) and testing validates
that.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.175&r2=1.176
--- LVM2/lib/activate/dev_manager.c 2010/01/15 22:58:25 1.175
+++ LVM2/lib/activate/dev_manager.c 2010/01/22 13:28:54 1.176
@@ -327,7 +327,6 @@
return 0;
}
-/* FIXME Is there anything simpler to check for instead? */
static int _lv_has_target_type(struct dev_manager *dm,
struct logical_volume *lv,
const char *layer,
@@ -363,8 +362,7 @@
&type, ¶ms);
if (type && strncmp(type, target_type,
strlen(target_type)) == 0) {
- /* FIXME Why the inactive test? */
- if (info.live_table && !info.inactive_table)
+ if (info.live_table)
r = 1;
break;
}
@@ -1141,6 +1139,7 @@
0, 1, 0, &dinfo, NULL) && dinfo.open_count) ||
(dev_manager_info(dm->mem, NULL, find_merging_cow(lv)->cow,
0, 1, 0, &dinfo, NULL) && dinfo.open_count)) {
+ /* FIXME Is there anything simpler to check for instead? */
if (!_lv_has_target_type(dm, lv, NULL, "snapshot-merge"))
clear_snapshot_merge(lv);
}
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2010-01-13 1:44 snitzer
0 siblings, 0 replies; 46+ messages in thread
From: snitzer @ 2010-01-13 1:44 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: snitzer@sourceware.org 2010-01-13 01:44:37
Modified files:
lib/activate : dev_manager.c
Log message:
Merging device is loaded with "-cow" suffix and with base name of the
origin. This is needed so that "-cow" device can be found and removed
when lvremove is performed.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.169&r2=1.170
--- LVM2/lib/activate/dev_manager.c 2010/01/13 01:43:32 1.169
+++ LVM2/lib/activate/dev_manager.c 2010/01/13 01:44:37 1.170
@@ -1062,16 +1062,28 @@
struct lv_segment *seg;
struct lv_layer *lvlayer;
struct dm_tree_node *dnode;
- char *name, *dlid;
+ char *name, *dlid, *lv_name;
uint32_t max_stripe_size = UINT32_C(0);
uint32_t read_ahead = lv->read_ahead;
uint32_t read_ahead_flags = UINT32_C(0);
uint16_t udev_flags = 0;
- if (lv_is_cow(lv) && find_cow(lv)->status & SNAPSHOT_MERGE && !layer)
- return 1;
+ lv_name = lv->name;
+ if (lv_is_cow(lv) && find_cow(lv)->status & SNAPSHOT_MERGE) {
+ if (layer) {
+ /*
+ * use origin's name as basis for snapshot-merge device names;
+ * this allows _clean_tree to automatically cleanup "-cow"
+ * when the origin is resumed (after merge completes)
+ */
+ lv_name = origin_from_cow(lv)->name;
+ } else {
+ /* top-level snapshot device is not needed during merge */
+ return 1;
+ }
+ }
- if (!(name = build_dm_name(dm->mem, lv->vg->name, lv->name, layer)))
+ if (!(name = build_dm_name(dm->mem, lv->vg->name, lv_name, layer)))
return_0;
if (!(dlid = build_dlid(dm, lv->lvid.s, layer)))
@@ -1084,7 +1096,7 @@
if (!(lvlayer = dm_pool_alloc(dm->mem, sizeof(*lvlayer)))) {
log_error("_add_new_lv_to_dtree: pool alloc failed for %s %s.",
- lv->name, layer);
+ lv_name, layer);
return 0;
}
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2009-12-03 10:01 zkabelac
0 siblings, 0 replies; 46+ messages in thread
From: zkabelac @ 2009-12-03 10:01 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2009-12-03 10:01:30
Modified files:
lib/activate : dev_manager.c
Log message:
minor indent change
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.165&r2=1.166
--- LVM2/lib/activate/dev_manager.c 2009/12/03 09:59:54 1.165
+++ LVM2/lib/activate/dev_manager.c 2009/12/03 10:01:30 1.166
@@ -971,7 +971,8 @@
/* Add any LVs used by this segment */
for (s = 0; s < seg->area_count; s++)
if ((seg_type(seg, s) == AREA_LV) &&
- (!_add_new_lv_to_dtree(dm, dtree, seg_lv(seg, s), NULL)))
+ (!_add_new_lv_to_dtree(dm, dtree, seg_lv(seg, s),
+ NULL)))
return_0;
}
@@ -1018,7 +1019,8 @@
return 1;
if (!(lvlayer = dm_pool_alloc(dm->mem, sizeof(*lvlayer)))) {
- log_error("_add_new_lv_to_dtree: pool alloc failed for %s %s.", lv->name, layer);
+ log_error("_add_new_lv_to_dtree: pool alloc failed for %s %s.",
+ lv->name, layer);
return 0;
}
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2009-12-03 9:59 zkabelac
0 siblings, 0 replies; 46+ messages in thread
From: zkabelac @ 2009-12-03 9:59 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2009-12-03 09:59:54
Modified files:
lib/activate : dev_manager.c
Log message:
skip cast from (void*)
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.164&r2=1.165
--- LVM2/lib/activate/dev_manager.c 2009/12/03 09:58:30 1.164
+++ LVM2/lib/activate/dev_manager.c 2009/12/03 09:59:54 1.165
@@ -1095,7 +1095,7 @@
int r = 1;
while ((child = dm_tree_next_child(&handle, root, 0))) {
- if (!(lvlayer = (struct lv_layer *) dm_tree_node_get_context(child)))
+ if (!(lvlayer = dm_tree_node_get_context(child)))
continue;
/* Detect rename */
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2009-11-04 14:56 mbroz
0 siblings, 0 replies; 46+ messages in thread
From: mbroz @ 2009-11-04 14:56 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: mbroz@sourceware.org 2009-11-04 14:56:36
Modified files:
lib/activate : dev_manager.c
Log message:
Fix compilation warning:
activate/dev_manager.c:362: warning: combined_percent_range may be used uninitialized in this function
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.162&r2=1.163
--- LVM2/lib/activate/dev_manager.c 2009/10/26 14:29:33 1.162
+++ LVM2/lib/activate/dev_manager.c 2009/11/04 14:56:35 1.163
@@ -359,7 +359,7 @@
struct dm_list *segh = &lv->segments;
struct lv_segment *seg = NULL;
struct segment_type *segtype;
- percent_range_t percent_range, combined_percent_range;
+ percent_range_t percent_range = 0, combined_percent_range = 0;
int first_time = 1;
uint64_t total_numerator = 0, total_denominator = 0;
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2009-05-07 12:01 mbroz
0 siblings, 0 replies; 46+ messages in thread
From: mbroz @ 2009-05-07 12:01 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: mbroz@sourceware.org 2009-05-07 12:01:22
Modified files:
lib/activate : dev_manager.c
Log message:
Use zalloc in initialization of device manager (to zero pvmove mirror count).
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.146&r2=1.147
--- LVM2/lib/activate/dev_manager.c 2009/02/28 20:04:24 1.146
+++ LVM2/lib/activate/dev_manager.c 2009/05/07 12:01:21 1.147
@@ -445,7 +445,7 @@
if (!(mem = dm_pool_create("dev_manager", 16 * 1024)))
return_NULL;
- if (!(dm = dm_pool_alloc(mem, sizeof(*dm))))
+ if (!(dm = dm_pool_zalloc(mem, sizeof(*dm))))
goto_bad;
dm->cmd = cmd;
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2008-09-19 7:05 agk
0 siblings, 0 replies; 46+ messages in thread
From: agk @ 2008-09-19 7:05 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2008-09-19 07:05:03
Modified files:
lib/activate : dev_manager.c
Log message:
.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.140&r2=1.141
--- LVM2/lib/activate/dev_manager.c 2008/09/19 06:41:57 1.140
+++ LVM2/lib/activate/dev_manager.c 2008/09/19 07:05:03 1.141
@@ -743,11 +743,11 @@
return_0;
dm_tree_node_add_target_area(node, NULL, dlid,
extent_size * seg_le(seg, s));
- } else {
+ } else
dm_tree_node_add_target_area(node,
dm->cmd->stripe_filler,
NULL, UINT64_C(0));
- }
+
return 1;
}
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2008-01-08 16:47 zkabelac
0 siblings, 0 replies; 46+ messages in thread
From: zkabelac @ 2008-01-08 16:47 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2008-01-08 16:47:10
Modified files:
lib/activate : dev_manager.c
Log message:
readahead at least twice the strip size (same as raid0 driver does)
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.131&r2=1.132
--- LVM2/lib/activate/dev_manager.c 2007/12/05 19:24:31 1.131
+++ LVM2/lib/activate/dev_manager.c 2008/01/08 16:47:10 1.132
@@ -953,7 +953,8 @@
}
if (read_ahead == DM_READ_AHEAD_AUTO) {
- read_ahead = max_stripe_size;
+ /* we need RA at least twice a whole stripe - see the comment in md/raid0.c */
+ read_ahead = max_stripe_size * 2;
read_ahead_flags = DM_READ_AHEAD_MINIMUM_FLAG;
}
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2007-12-03 18:00 agk
0 siblings, 0 replies; 46+ messages in thread
From: agk @ 2007-12-03 18:00 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2007-12-03 18:00:38
Modified files:
lib/activate : dev_manager.c
Log message:
fix changed parms
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.129&r2=1.130
--- LVM2/lib/activate/dev_manager.c 2007/11/29 15:04:12 1.129
+++ LVM2/lib/activate/dev_manager.c 2007/12/03 18:00:38 1.130
@@ -142,9 +142,10 @@
if (!dm_task_get_info(dmt, info))
goto_out;
- if (with_read_ahead)
- *read_ahead = dm_task_get_read_ahead(dmt);
- else if (read_ahead)
+ if (with_read_ahead) {
+ if (!dm_task_get_read_ahead(dmt, read_ahead))
+ goto_out;
+ } else if (read_ahead)
*read_ahead = DM_READ_AHEAD_NONE;
r = 1;
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2007-11-29 15:04 agk
0 siblings, 0 replies; 46+ messages in thread
From: agk @ 2007-11-29 15:04 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2007-11-29 15:04:12
Modified files:
lib/activate : dev_manager.c
Log message:
uncomment libdevmapper readahead calls
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.128&r2=1.129
--- LVM2/lib/activate/dev_manager.c 2007/11/12 20:51:53 1.128
+++ LVM2/lib/activate/dev_manager.c 2007/11/29 15:04:12 1.129
@@ -142,11 +142,10 @@
if (!dm_task_get_info(dmt, info))
goto_out;
- if (!with_read_ahead) {
- if (read_ahead)
- *read_ahead = DM_READ_AHEAD_NONE;
- } else
- ; // FIXME *read_ahead = dm_task_get_read_ahead(dmt);
+ if (with_read_ahead)
+ *read_ahead = dm_task_get_read_ahead(dmt);
+ else if (read_ahead)
+ *read_ahead = DM_READ_AHEAD_NONE;
r = 1;
@@ -901,7 +900,7 @@
char *name, *dlid;
uint32_t max_stripe_size = UINT32_C(0);
uint32_t read_ahead = lv->read_ahead;
- uint32_t flags = UINT32_C(0);
+ uint32_t read_ahead_flags = UINT32_C(0);
if (!(name = build_dm_name(dm->mem, lv->vg->name, lv->name, layer)))
return_0;
@@ -955,9 +954,9 @@
if (read_ahead == DM_READ_AHEAD_AUTO)
read_ahead = max_stripe_size;
else
- flags = DM_READ_AHEAD_MINIMUM_FLAG;
+ read_ahead_flags = DM_READ_AHEAD_MINIMUM_FLAG;
- // FIXME dm_tree_node_set_read_ahead(dnode, read_ahead, flags);
+ dm_tree_node_set_read_ahead(dnode, read_ahead, read_ahead_flags);
return 1;
}
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2005-11-22 19:37 agk
0 siblings, 0 replies; 46+ messages in thread
From: agk @ 2005-11-22 19:37 UTC (permalink / raw)
To: lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2005-11-22 19:37:14
Modified files:
lib/activate : dev_manager.c
Log message:
Remove a resolved FIXME.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.102&r2=1.103
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2005-11-09 23:56 agk
0 siblings, 0 replies; 46+ messages in thread
From: agk @ 2005-11-09 23:56 UTC (permalink / raw)
To: lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2005-11-09 23:56:36
Modified files:
lib/activate : dev_manager.c
Log message:
workaround for pvmove with new activation code
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.101&r2=1.102
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2005-11-09 18:12 agk
0 siblings, 0 replies; 46+ messages in thread
From: agk @ 2005-11-09 18:12 UTC (permalink / raw)
To: lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2005-11-09 18:12:36
Modified files:
lib/activate : dev_manager.c
Log message:
more mirror fixing
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.100&r2=1.101
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2005-11-09 13:08 agk
0 siblings, 0 replies; 46+ messages in thread
From: agk @ 2005-11-09 13:08 UTC (permalink / raw)
To: lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2005-11-09 13:08:41
Modified files:
lib/activate : dev_manager.c
Log message:
rename deptree
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.99&r2=1.100
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2005-10-26 19:50 agk
0 siblings, 0 replies; 46+ messages in thread
From: agk @ 2005-10-26 19:50 UTC (permalink / raw)
To: lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2005-10-26 19:50:00
Modified files:
lib/activate : dev_manager.c
Log message:
remove unused suspend code path
Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.95&r2=1.96
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2005-10-26 17:56 agk
0 siblings, 0 replies; 46+ messages in thread
From: agk @ 2005-10-26 17:56 UTC (permalink / raw)
To: lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2005-10-26 17:56:31
Modified files:
lib/activate : dev_manager.c
Log message:
suppress status err mesg when LVM- uuid prefix is missing
Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.94&r2=1.95
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2005-10-26 17:31 agk
0 siblings, 0 replies; 46+ messages in thread
From: agk @ 2005-10-26 17:31 UTC (permalink / raw)
To: lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2005-10-26 17:31:12
Modified files:
lib/activate : dev_manager.c
Log message:
remove remaining hard-coded prefix lengths
Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.93&r2=1.94
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2005-10-26 15:54 agk
0 siblings, 0 replies; 46+ messages in thread
From: agk @ 2005-10-26 15:54 UTC (permalink / raw)
To: lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2005-10-26 15:54:50
Modified files:
lib/activate : dev_manager.c
Log message:
a missing lvid/dlid conversion
Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.92&r2=1.93
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2005-10-26 15:00 agk
0 siblings, 0 replies; 46+ messages in thread
From: agk @ 2005-10-26 15:00 UTC (permalink / raw)
To: lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2005-10-26 15:00:53
Modified files:
lib/activate : dev_manager.c
Log message:
Attempt to cope with LVM- prefix transition.
Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.91&r2=1.92
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2005-10-26 14:13 agk
0 siblings, 0 replies; 46+ messages in thread
From: agk @ 2005-10-26 14:13 UTC (permalink / raw)
To: lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2005-10-26 14:13:52
Modified files:
lib/activate : dev_manager.c
Log message:
switch in new suspend code (untested)
Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.90&r2=1.91
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2005-10-17 19:06 agk
0 siblings, 0 replies; 46+ messages in thread
From: agk @ 2005-10-17 19:06 UTC (permalink / raw)
To: lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2005-10-17 19:06:20
Modified files:
lib/activate : dev_manager.c
Log message:
some deactivation fixes
Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.85&r2=1.86
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2005-08-04 1:29 agk
0 siblings, 0 replies; 46+ messages in thread
From: agk @ 2005-08-04 1:29 UTC (permalink / raw)
To: lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2005-08-04 01:29:19
Modified files:
lib/activate : dev_manager.c
Log message:
fix last checkin
Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.80&r2=1.81
^ permalink raw reply [flat|nested] 46+ messages in thread
* LVM2/lib/activate dev_manager.c
@ 2004-05-12 20:40 agk
0 siblings, 0 replies; 46+ messages in thread
From: agk @ 2004-05-12 20:40 UTC (permalink / raw)
To: lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2004-05-12 20:40:34
Modified files:
lib/activate : dev_manager.c
Log message:
Attempt to fix resizing of snapshot origins.
Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.65&r2=1.66
^ permalink raw reply [flat|nested] 46+ messages in thread
end of thread, other threads:[~2012-02-13 17:59 UTC | newest]
Thread overview: 46+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-11-15 17:15 LVM2/lib/activate dev_manager.c zkabelac
-- strict thread matches above, loose matches on Subject: below --
2012-02-13 17:59 jbrassow
2012-01-25 11:10 agk
2012-01-19 15:19 zkabelac
2011-12-21 12:55 zkabelac
2011-11-15 17:25 zkabelac
2011-11-15 17:21 zkabelac
2011-10-28 20:34 zkabelac
2011-10-11 10:02 zkabelac
2011-10-11 9:03 zkabelac
2011-10-11 9:02 zkabelac
2011-10-11 9:01 zkabelac
2011-10-11 8:54 zkabelac
2011-10-03 18:24 zkabelac
2011-07-05 1:01 agk
2011-07-04 14:56 agk
2010-12-22 15:32 zkabelac
2010-12-20 14:04 zkabelac
2010-05-14 12:39 mbroz
2010-05-14 12:30 mbroz
2010-05-14 12:03 mbroz
2010-02-23 15:49 mornfall
2010-02-10 14:38 snitzer
2010-01-22 13:28 snitzer
2010-01-13 1:44 snitzer
2009-12-03 10:01 zkabelac
2009-12-03 9:59 zkabelac
2009-11-04 14:56 mbroz
2009-05-07 12:01 mbroz
2008-09-19 7:05 agk
2008-01-08 16:47 zkabelac
2007-12-03 18:00 agk
2007-11-29 15:04 agk
2005-11-22 19:37 agk
2005-11-09 23:56 agk
2005-11-09 18:12 agk
2005-11-09 13:08 agk
2005-10-26 19:50 agk
2005-10-26 17:56 agk
2005-10-26 17:31 agk
2005-10-26 15:54 agk
2005-10-26 15:00 agk
2005-10-26 14:13 agk
2005-10-17 19:06 agk
2005-08-04 1:29 agk
2004-05-12 20:40 agk
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).