public inbox for lvm2-cvs@sourceware.org help / color / mirror / Atom feed
From: jbrassow@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2/tools lvconvert.c Date: Wed, 23 Jun 2010 20:32:00 -0000 [thread overview] Message-ID: <20100623203231.28578.qmail@sourceware.org> (raw) CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: jbrassow@sourceware.org 2010-06-23 20:32:29 Modified files: tools : lvconvert.c Log message: Committing Taka's patch... He found a problem during the failure of a device that contained both a image of a mirror and an image of the mirrored log. The order of the handling of those faults was important (and wrong), this patch corrects that. Patch-From: Takahiro Yasui <tyasui@redhat.com> Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/lvconvert.c.diff?cvsroot=lvm2&r1=1.134&r2=1.135 --- LVM2/tools/lvconvert.c 2010/05/24 15:32:21 1.134 +++ LVM2/tools/lvconvert.c 2010/06/23 20:32:29 1.135 @@ -689,6 +689,27 @@ return lv_mirror_count(log_lv); } +static int _lv_update_mirrored_log(struct logical_volume *lv, + struct dm_list *operable_pvs, + int log_count) +{ + int old_log_count; + struct logical_volume *log_lv; + + log_lv = first_seg(_original_lv(lv))->log_lv; + if (!log_lv || !(log_lv->status & MIRRORED)) + return 1; + + old_log_count = _get_log_count(lv); + if (old_log_count == log_count) + return 1; + + /* Reducing redundancy of the log */ + return remove_mirror_images(log_lv, log_count, + is_mirror_image_removable, + operable_pvs, 0U); +} + static int _lv_update_log_type(struct cmd_context *cmd, struct lvconvert_params *lp, struct logical_volume *lv, @@ -1218,15 +1239,23 @@ * We must adjust the log first, or the entire mirror * will get stuck during a suspend. */ - if (!_lv_update_log_type(cmd, lp, lv, failed_pvs, new_log_count)) + if (!_lv_update_mirrored_log(lv, failed_pvs, new_log_count)) return 0; + if (lp->mirrors == 1) + new_log_count = 0; + if (failed_mirrors) { - if (!lv_remove_mirrors(cmd, lv, failed_mirrors, new_log_count, + if (!lv_remove_mirrors(cmd, lv, failed_mirrors, + new_log_count ? 0U : 1U, _is_partial_lv, NULL, 0)) return 0; } + if (!_lv_update_log_type(cmd, lp, lv, failed_pvs, + new_log_count)) + return 0; + if (!_reload_lv(cmd, lv)) return 0;
next reply other threads:[~2010-06-23 20:32 UTC|newest] Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top 2010-06-23 20:32 jbrassow [this message] -- strict thread matches above, loose matches on Subject: below -- 2012-04-19 21:50 jbrassow 2012-02-23 22:36 zkabelac 2012-02-22 16:03 jbrassow 2012-02-22 15:20 jbrassow 2012-02-13 18:38 jbrassow 2012-02-13 18:36 jbrassow 2012-01-25 22:38 zkabelac 2011-12-08 18:00 agk 2011-06-29 2:06 jbrassow 2011-06-28 21:28 jbrassow 2011-01-19 19:24 jbrassow 2010-11-28 18:37 snitzer 2010-07-13 22:04 jbrassow 2010-07-13 21:53 jbrassow 2010-07-01 10:10 mornfall 2010-04-28 17:41 jbrassow 2010-04-26 18:12 agk 2010-04-20 12:18 agk 2010-03-31 20:39 agk 2010-02-05 22:47 snitzer 2010-01-13 1:49 snitzer 2010-01-13 1:47 snitzer 2010-01-11 17:13 jbrassow 2010-01-07 20:42 jbrassow 2009-10-21 22:19 jbrassow 2009-08-02 21:56 mornfall 2009-06-26 11:29 wysochanski 2009-06-10 15:27 mornfall 2009-05-19 10:27 mbroz 2009-05-19 10:12 mbroz 2008-01-16 22:54 agk 2008-01-16 19:40 agk 2008-01-16 19:16 agk 2007-12-21 1:08 agk 2007-08-01 20:54 jbrassow 2006-05-11 18:56 agk 2006-04-07 14:14 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=20100623203231.28578.qmail@sourceware.org \ --to=jbrassow@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).