public inbox for lvm2-cvs@sourceware.org help / color / mirror / Atom feed
From: wysochanski@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2 lib/metadata/metadata-exported.h lib/meta ... Date: Tue, 29 Jun 2010 21:32:00 -0000 [thread overview] Message-ID: <20100629213245.19471.qmail@sourceware.org> (raw) CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: wysochanski@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 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:01 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 \ --cc=lvm2-cvs@sourceware.org \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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).