From: wysochanski@sourceware.org <wysochanski@sourceware.org>
To: lvm-devel@redhat.com
Subject: LVM2 lib/metadata/metadata-exported.h lib/meta ...
Date: 29 Jun 2010 21:32:45 -0000 [thread overview]
Message-ID: <20100629213245.19471.qmail@sourceware.org> (raw)
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: wysochanski at sourceware.org 2010-06-29 21:32:44
Modified files:
lib/metadata : metadata-exported.h metadata.c
tools : pvchange.c
Log message:
Move code into pv_change_metadataignore library function.
In preparation to call this from both pvcreate as well as pvchange,
move the guts of metadataignore into a library function.
Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/metadata-exported.h.diff?cvsroot=lvm2&r1=1.158&r2=1.159
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/metadata.c.diff?cvsroot=lvm2&r1=1.363&r2=1.364
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/pvchange.c.diff?cvsroot=lvm2&r1=1.78&r2=1.79
--- LVM2/lib/metadata/metadata-exported.h 2010/06/28 20:40:01 1.158
+++ LVM2/lib/metadata/metadata-exported.h 2010/06/29 21:32:44 1.159
@@ -866,6 +866,7 @@
uint32_t pv_mda_count(const struct physical_volume *pv);
uint32_t pv_mda_used_count(const struct physical_volume *pv);
unsigned pv_mda_set_ignored(const struct physical_volume *pv, unsigned ignored);
+int pv_change_metadataignore(struct physical_volume *pv, uint32_t mda_ignore);
uint64_t lv_size(const struct logical_volume *lv);
--- LVM2/lib/metadata/metadata.c 2010/06/28 20:40:01 1.363
+++ LVM2/lib/metadata/metadata.c 2010/06/29 21:32:44 1.364
@@ -4223,6 +4223,50 @@
return 0;
}
+int pv_change_metadataignore(struct physical_volume *pv, uint32_t mda_ignore)
+{
+ const char *pv_name = pv_dev_name(pv);
+
+ if (mda_ignore && (pv_mda_used_count(pv) == 0)) {
+ log_error("Physical volume \"%s\" metadata already "
+ "ignored", pv_name);
+ return 0;
+ }
+ if (!mda_ignore && (pv_mda_used_count(pv) == pv_mda_count(pv))) {
+ log_error("Physical volume \"%s\" metadata already "
+ "not ignored", pv_name);
+ return 0;
+ }
+ if (!pv_mda_count(pv)) {
+ log_error("Physical volume \"%s\" has no metadata "
+ "areas ", pv_name);
+ return 0;
+ }
+ if (mda_ignore) {
+ log_verbose("Setting physical volume \"%s\" "
+ "metadata ignored", pv_name);
+ } else {
+ log_verbose("Setting physical volume \"%s\" "
+ "metadata not ignored", pv_name);
+ }
+ if (!pv_mda_set_ignored(pv, mda_ignore)) {
+ return 0;
+ }
+ /*
+ * Update vg_mda_copies based on the mdas in this PV.
+ * This is most likely what the user would expect - if they
+ * specify a specific PV to be ignored/un-ignored, they will
+ * most likely not want LVM to turn around and change the
+ * ignore / un-ignore value when it writes the VG to disk.
+ * This does not guarantee this PV's ignore bits will be
+ * preserved in future operations.
+ */
+ if (!is_orphan(pv) && vg_mda_copies(pv->vg)) {
+ vg_set_mda_copies(pv->vg, vg_mda_used_count(pv->vg));
+ }
+ return 1;
+}
+
uint32_t vg_seqno(const struct volume_group *vg)
{
return vg->seqno;
--- LVM2/tools/pvchange.c 2010/06/28 20:38:06 1.78
+++ LVM2/tools/pvchange.c 2010/06/29 21:32:44 1.79
@@ -122,42 +122,8 @@
}
}
} else if (arg_count(cmd, metadataignore_ARG)) {
- if (mda_ignore && (pv_mda_used_count(pv) == 0)) {
- log_error("Physical volume \"%s\" metadata already "
- "ignored", pv_name);
+ if (!pv_change_metadataignore(pv, mda_ignore))
goto out;
- }
- if (!mda_ignore && (pv_mda_used_count(pv) == pv_mda_count(pv))) {
- log_error("Physical volume \"%s\" metadata already "
- "not ignored", pv_name);
- goto out;
- }
- if (!pv_mda_count(pv)) {
- log_error("Physical volume \"%s\" has no metadata "
- "areas ", pv_name);
- goto out;
- }
- if (mda_ignore) {
- log_verbose("Setting physical volume \"%s\" "
- "metadata ignored", pv_name);
- } else {
- log_verbose("Setting physical volume \"%s\" "
- "metadata not ignored", pv_name);
- }
- if (!pv_mda_set_ignored(pv, mda_ignore)) {
- goto out;
- }
- /*
- * Update vg_mda_copies based on the mdas in this PV.
- * This is most likely what the user would expect - if they
- * specify a specific PV to be ignored/un-ignored, they will
- * most likely not want LVM to turn around and change the
- * ignore / un-ignore value when it writes the VG to disk.
- * This does not guarantee this PV's ignore bits will be
- * preserved in future operations.
- */
- if (!is_orphan(pv) && vg_mda_copies(vg))
- vg_set_mda_copies(vg, vg_mda_used_count(vg));
} else {
/* --uuid: Change PV ID randomly */
if (!id_create(&pv->id)) {
next reply other threads:[~2010-06-29 21:32 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-29 21:32 wysochanski [this message]
-- strict thread matches above, loose matches on Subject: below --
2011-02-21 12:29 LVM2 lib/metadata/metadata-exported.h lib/meta prajnoha
2010-10-12 16:41 mornfall
2010-06-30 20:03 agk
2010-06-30 18:03 wysochanski
2010-06-28 20:40 wysochanski
2010-02-24 18:15 wysochanski
2010-02-24 18:15 wysochanski
2010-02-14 3:21 wysochanski
2010-02-14 3:21 wysochanski
2009-11-01 20:05 wysochanski
2009-11-01 19:51 wysochanski
2009-10-31 17:30 wysochanski
2009-10-05 20:03 wysochanski
2009-10-05 20:02 wysochanski
2009-10-01 1:04 agk
2009-09-14 15:45 wysochanski
2009-09-02 21:39 wysochanski
2009-09-02 21:39 wysochanski
2009-07-28 15:14 wysochanski
2009-07-28 13:17 wysochanski
2009-07-26 2:34 wysochanski
2009-07-26 1:53 wysochanski
2009-07-15 5:50 mornfall
2009-07-14 2:15 wysochanski
2009-07-10 20:07 wysochanski
2009-07-10 20:05 wysochanski
2009-07-09 10:09 wysochanski
2009-07-09 10:08 wysochanski
2009-07-09 10:07 wysochanski
2009-07-09 10:06 wysochanski
2009-07-09 10:04 wysochanski
2009-07-09 10:03 wysochanski
2009-07-08 14:33 wysochanski
2009-07-01 17:00 wysochanski
2008-06-24 20:10 wysochanski
2008-01-16 19:54 wysochanski
2008-01-15 22:56 wysochanski
2007-12-22 2:13 agk
2007-11-15 22:11 agk
2007-07-23 21:03 wysochanski
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=20100629213245.19471.qmail@sourceware.org \
--to=wysochanski@sourceware.org \
--cc=lvm-devel@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.