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/liblvm lvm.h lvm_vg.c Date: Sun, 26 Jul 2009 01:54:00 -0000 [thread overview] Message-ID: <20090726015440.11181.qmail@sourceware.org> (raw) CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: wysochanski@sourceware.org 2009-07-26 01:54:40 Modified files: liblvm : lvm.h lvm_vg.c Log message: Update lvm_vg_extend to do an implicit pvcreate on the device. Although the tools do not currently do this, we update lvm_vg_extend to do an implicit pvcreate on an uninitialized device. The tools will soon be refactored to do this as well, but more work is needed in the tools. For now we update lvm_vg_extend since this is the behavior required by liblvm. With this change, the simple liblvm unit test, test/api/vgtest.c should pass whether or not the device is initialized. Author: Dave Wysochanski <dwysocha@redhat.com> Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/liblvm/lvm.h.diff?cvsroot=lvm2&r1=1.12&r2=1.13 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/liblvm/lvm_vg.c.diff?cvsroot=lvm2&r1=1.9&r2=1.10 --- LVM2/liblvm/lvm.h 2009/07/24 12:48:21 1.12 +++ LVM2/liblvm/lvm.h 2009/07/26 01:54:40 1.13 @@ -146,6 +146,10 @@ * After successfully adding a device, use lvm_vg_write to commit the new VG * to disk. Upon failure, retry the operation or release the VG handle with * lvm_vg_close. + * If the device is not initialized for LVM use, it will be initialized + * before adding to the VG. Although some internal checks are done, + * the caller should be sure the device is not in use by other subsystems + * before calling lvm_vg_extend. * * \param vg * VG handle obtained from lvm_vg_create. --- LVM2/liblvm/lvm_vg.c 2009/07/24 15:12:50 1.9 +++ LVM2/liblvm/lvm_vg.c 2009/07/26 01:54:40 1.10 @@ -12,9 +12,6 @@ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include <errno.h> -#include <string.h> - #include "lib.h" #include "lvm.h" #include "toolcontext.h" @@ -23,6 +20,10 @@ #include "locking.h" #include "lvm-string.h" #include "lvmcache.h" +#include "metadata.h" + +#include <errno.h> +#include <string.h> vg_t *lvm_vg_create(lvm_t libh, const char *vg_name) { @@ -47,6 +48,14 @@ return 0; } + /* If device not initialized, pvcreate it */ + if (!pv_by_path(vg->cmd, device) && + (!pvcreate_single(vg->cmd, device, NULL))) { + log_error("Unable to initialize device for LVM use\n"); + unlock_vg(vg->cmd, VG_ORPHANS); + return 0; + } + if (!vg_extend(vg, 1, (char **) &device)) { unlock_vg(vg->cmd, VG_ORPHANS); return 0;
next reply other threads:[~2009-07-26 1:54 UTC|newest] Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top 2009-07-26 1:54 wysochanski [this message] -- strict thread matches above, loose matches on Subject: below -- 2009-07-23 1:20 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=20090726015440.11181.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).