From: Jan Blunck <jblunck@suse.de>
To: linux-lvm@redhat.com
Subject: [linux-lvm] [RFC, 2nd try] Let udev play with snapshots
Date: Mon, 23 Oct 2006 15:41:00 +0200 [thread overview]
Message-ID: <20061023134100.GB4729@hasse.suse.de> (raw)
In-Reply-To: <20061011173421.GC4636@hasse.suse.de>
On Wed, Oct 11, Jan Blunck wrote:
> - creating "vg-snapshot"
> - clearing the start of "vg-snapshot"
> - removing "vg-snapshot" (1)
Actually this must be deactivation of vg-snapshot. This is where the
deactivation code complains about the usage count of the LV.
> - creating "vg-origin-real"
> - creating "vg-snapshot-cow"
> - creating "vg-snapshot"
> - suspending "vg-origin" and "vg-origin-real"
> - reload tables
> - resuming "vg-origin-real", "vg-snapshot-cow", "vg-snapshot" and (2)
> "vg-origin"
I looked into the lvcreate code and realised that the deactivation code is
only complaining about the usage count because "vg-snapshot" is marked
VISIBLE_LV. Since the LV is at that moment used for clearing I think it should
be marked internal.
I know that this isn't a perfect solution yet. In the long term we need to give
udev a change to determine if an LV is internal or not (e.g. by reading the
VISIBLE_LV status).
BTW: Why do we actually create links even if the LV is marked invisible? Does
that make any sense at all?
RFC,
Jan
---
Index: LVM2/tools/lvcreate.c
===================================================================
--- LVM2.orig/tools/lvcreate.c
+++ LVM2/tools/lvcreate.c
@@ -694,6 +694,10 @@ static int _lvcreate(struct cmd_context
}
}
+ /* We are cleaning the exception table first, so let it be internal */
+ if (lp->snapshot)
+ status &= ~VISIBLE_LV;
+
if (!(lv = lv_create_empty(vg->fid, lv_name ? lv_name : "lvol%d", NULL,
status, lp->alloc, 0, vg))) {
stack;
@@ -792,6 +796,9 @@ static int _lvcreate(struct cmd_context
return 0;
}
+ /* we are no longer an internal LV */
+ lv->status |= VISIBLE_LV;
+
if (!vg_add_snapshot(vg->fid, NULL, org, lv, NULL,
org->le_count, lp->chunk_size)) {
log_err("Couldn't create snapshot.");
next prev parent reply other threads:[~2006-10-23 13:41 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-11 17:34 [linux-lvm] [RFC] Let udev play with snapshots Jan Blunck
2006-10-11 17:46 ` Alasdair G Kergon
2006-10-11 18:08 ` Jan Blunck
2006-10-11 18:17 ` Alasdair G Kergon
2006-10-12 7:13 ` Jan Blunck
2006-10-23 13:41 ` Jan Blunck [this message]
2006-10-24 18:21 ` [linux-lvm] [RFC, 2nd try] " Alasdair G Kergon
2006-10-26 18:33 ` Alasdair G Kergon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20061023134100.GB4729@hasse.suse.de \
--to=jblunck@suse.de \
--cc=linux-lvm@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.