public inbox for lvm2-cvs@sourceware.org help / color / mirror / Atom feed
From: zkabelac@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2 ./WHATS_NEW tools/toollib.c Date: Fri, 21 May 2010 14:11:00 -0000 [thread overview] Message-ID: <20100521141116.18841.qmail@sourceware.org> (raw) CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: zkabelac@sourceware.org 2010-05-21 14:11:13 Modified files: . : WHATS_NEW tools : toollib.c Log message: Replicator: use cmd_vg list for _process_one_vg() Patch modifes behavior of _process_one_vg(). In the first pass vg_read() collectis for replicator sorted list of additional VGs during lock_vol(). If any other VG is needed by the replicator and it is not yet opened then next iteration loop is taken with all collected VGs. Flag vg->cmd_missing_vgs detects missing VGs. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.1585&r2=1.1586 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/toollib.c.diff?cvsroot=lvm2&r1=1.199&r2=1.200 --- LVM2/WHATS_NEW 2010/05/21 14:07:16 1.1585 +++ LVM2/WHATS_NEW 2010/05/21 14:11:13 1.1586 @@ -1,5 +1,6 @@ Version 2.02.67 - =============================== + Update _process_one_vg() to work with cmd_vg struture. Add functions for read and release VGs list. Add find_replicator_vgs() to discover all needed VGs for replicator-dev LV. Add functions for handling cmd_vg structure. --- LVM2/tools/toollib.c 2010/05/21 12:21:52 1.199 +++ LVM2/tools/toollib.c 2010/05/21 14:11:13 1.200 @@ -432,37 +432,51 @@ uint32_t flags, void *handle, int ret_max, process_single_vg_fn_t process_single_vg) { - struct volume_group *vg; + struct dm_list cmd_vgs; + struct cmd_vg *cvl_vg; int ret = 0; log_verbose("Finding volume group \"%s\"", vg_name); - vg = vg_read(cmd, vg_name, vgid, flags); - /* Allow FAILED_INCONSISTENT through only for vgcfgrestore */ - if (vg_read_error(vg) && - !((vg_read_error(vg) == FAILED_INCONSISTENT) && - (flags & READ_ALLOW_INCONSISTENT))) { - ret_max = ECMD_FAILED; - goto_out; - } + dm_list_init(&cmd_vgs); + if (!(cvl_vg = cmd_vg_add(cmd->mem, &cmd_vgs, vg_name, vgid, flags))) + return_0; + + for (;;) { + /* FIXME: consistent handling of command break */ + if (sigint_caught()) { + ret = ECMD_FAILED; + break; + } + if (!cmd_vg_read(cmd, &cmd_vgs)) + /* Allow FAILED_INCONSISTENT through only for vgcfgrestore */ + if (vg_read_error(cvl_vg->vg) && + (!((flags & READ_ALLOW_INCONSISTENT) && + (vg_read_error(cvl_vg->vg) == FAILED_INCONSISTENT)))) { + ret = ECMD_FAILED; + break; + } + + if (!dm_list_empty(tags) && + /* Only process if a tag matches or it's on arg_vgnames */ + !str_list_match_item(arg_vgnames, vg_name) && + !str_list_match_list(tags, &cvl_vg->vg->tags)) + break; - if (!dm_list_empty(tags)) { - /* Only process if a tag matches or it's on arg_vgnames */ - if (!str_list_match_item(arg_vgnames, vg_name) && - !str_list_match_list(tags, &vg->tags)) - goto out; + ret = process_single_vg(cmd, vg_name, cvl_vg->vg, handle); + + if (vg_read_error(cvl_vg->vg)) /* FAILED_INCONSISTENT */ + break; + + if (!cvl_vg->vg->cmd_missing_vgs) + break; + + cmd_vg_release(&cmd_vgs); } - if ((ret = process_single_vg(cmd, vg_name, vg, - handle)) > ret_max) - ret_max = ret; + cmd_vg_release(&cmd_vgs); -out: - if (vg_read_error(vg)) - vg_release(vg); - else - unlock_and_release_vg(cmd, vg, vg_name); - return ret_max; + return (ret > ret_max) ? ret : ret_max; } int process_each_vg(struct cmd_context *cmd, int argc, char **argv,
next reply other threads:[~2010-05-21 14:11 UTC|newest] Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top 2010-05-21 14:11 zkabelac [this message] -- strict thread matches above, loose matches on Subject: below -- 2012-01-25 21:52 zkabelac 2011-11-18 19:19 zkabelac 2011-02-18 15:02 zkabelac 2010-11-23 20:39 zkabelac 2010-05-21 14:15 zkabelac 2010-05-21 12:19 zkabelac 2010-04-14 2:19 agk 2009-11-24 16:13 mbroz 2009-09-29 20:33 agk 2009-08-24 11:37 mbroz 2009-07-21 11:10 agk 2009-05-27 13:23 agk 2009-04-10 9:54 mbroz 2008-06-10 15:25 wysochanski 2008-02-06 16:09 agk 2008-01-03 19:03 agk 2007-09-11 20:12 meyering 2007-07-10 17:51 agk 2006-10-24 18:25 agk 2006-06-14 20:27 agk 2004-05-20 16:18 agk 2004-05-05 18:31 agk
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=20100521141116.18841.qmail@sourceware.org \ --to=zkabelac@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).