public inbox for lvm2-cvs@sourceware.org help / color / mirror / Atom feed
From: agk@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2/lib/activate activate.c Date: Tue, 05 Jul 2011 18:36:00 -0000 [thread overview] Message-ID: <20110705183637.27966.qmail@sourceware.org> (raw) CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: agk@sourceware.org 2011-07-05 18:36:37 Modified files: lib/activate : activate.c Log message: Always perform preload logic before suspending - not only in the case when we have precommitted metadata. (Necessary to avoid loading tables while suspend in lvchange --refresh.) Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/activate.c.diff?cvsroot=lvm2&r1=1.206&r2=1.207 --- LVM2/lib/activate/activate.c 2011/07/05 01:08:42 1.206 +++ LVM2/lib/activate/activate.c 2011/07/05 18:36:37 1.207 @@ -1168,49 +1168,47 @@ lv_calculate_readahead(lv, NULL); /* - * If VG was precommitted, preload devices for the LV. + * Preload devices for the LV. * If the PVMOVE LV is being removed, it's only present in the old * metadata and not the new, so we must explicitly add the new * tables for all the changed LVs here, as the relationships * are not found by walking the new metadata. */ - if ((lv_pre->vg->status & PRECOMMITTED)) { - if (!(lv_pre->status & LOCKED) && - (lv->status & LOCKED) && - (pvmove_lv = find_pvmove_lv_in_lv(lv))) { - /* Preload all the LVs above the PVMOVE LV */ - dm_list_iterate_items(sl, &pvmove_lv->segs_using_this_lv) { - if (!(lvl_pre = find_lv_in_vg(lv_pre->vg, sl->seg->lv->name))) { - /* FIXME Internal error? */ - log_error("LV %s missing from preload metadata", sl->seg->lv->name); - goto out; - } - if (!_lv_preload(lvl_pre->lv, laopts, &flush_required)) - goto_out; - } - /* Now preload the PVMOVE LV itself */ - if (!(lvl_pre = find_lv_in_vg(lv_pre->vg, pvmove_lv->name))) { + if (!(lv_pre->status & LOCKED) && + (lv->status & LOCKED) && + (pvmove_lv = find_pvmove_lv_in_lv(lv))) { + /* Preload all the LVs above the PVMOVE LV */ + dm_list_iterate_items(sl, &pvmove_lv->segs_using_this_lv) { + if (!(lvl_pre = find_lv_in_vg(lv_pre->vg, sl->seg->lv->name))) { /* FIXME Internal error? */ - log_error("LV %s missing from preload metadata", pvmove_lv->name); + log_error("LV %s missing from preload metadata", sl->seg->lv->name); goto out; } if (!_lv_preload(lvl_pre->lv, laopts, &flush_required)) goto_out; - } else { - if (!_lv_preload(lv_pre, laopts, &flush_required)) - /* FIXME Revert preloading */ - goto_out; + } + /* Now preload the PVMOVE LV itself */ + if (!(lvl_pre = find_lv_in_vg(lv_pre->vg, pvmove_lv->name))) { + /* FIXME Internal error? */ + log_error("LV %s missing from preload metadata", pvmove_lv->name); + goto out; + } + if (!_lv_preload(lvl_pre->lv, laopts, &flush_required)) + goto_out; + } else { + if (!_lv_preload(lv_pre, laopts, &flush_required)) + /* FIXME Revert preloading */ + goto_out; - /* - * Search for existing LVs that have become detached and preload them. - */ - detached.lv_pre = lv_pre; - detached.laopts = laopts; - detached.flush_required = &flush_required; + /* + * Search for existing LVs that have become detached and preload them. + */ + detached.lv_pre = lv_pre; + detached.laopts = laopts; + detached.flush_required = &flush_required; - if (!for_each_sub_lv(cmd, lv, &_preload_detached_lv, &detached)) - goto_out; - } + if (!for_each_sub_lv(cmd, lv, &_preload_detached_lv, &detached)) + goto_out; } if (!monitor_dev_for_events(cmd, lv, laopts, 0))
next reply other threads:[~2011-07-05 18:36 UTC|newest] Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top 2011-07-05 18:36 agk [this message] -- strict thread matches above, loose matches on Subject: below -- 2012-01-25 9:00 zkabelac 2012-01-20 3:46 agk 2012-01-12 9:08 prajnoha 2011-07-08 15:35 agk 2011-07-05 1:08 agk 2010-07-12 12:38 prajnoha 2008-09-19 7:12 agk 2007-01-24 22:06 agk 2006-04-28 14:06 agk 2006-01-27 20:39 agk 2006-01-27 18:38 agk 2004-05-11 18:18 agk 2004-04-14 17:33 agk 2004-03-26 19:13 agk 2004-03-19 16:26 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=20110705183637.27966.qmail@sourceware.org \ --to=agk@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).