From: Dave Wysochanski Date: Mon, 28 Jun 2010 20:31:18 +0000 (+0000) Subject: Ensure in-memory state matches on-disk state of mda ignore bit. X-Git-Tag: v2_02_91~1803 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=a6b36a59013dd71e6070efe36acffe70ebf3d09e;p=lvm2.git Ensure in-memory state matches on-disk state of mda ignore bit. Signed-off-by: Dave Wysochanski --- diff --git a/lib/format_text/format-text.c b/lib/format_text/format-text.c index bc8e98ab3..d4c6a7493 100644 --- a/lib/format_text/format-text.c +++ b/lib/format_text/format-text.c @@ -726,6 +726,7 @@ static int _vg_commit_raw_rlocn(struct format_instance *fid, "header at %" PRIu64, vg->name, dev_name(mdac->area.dev), mdac->area.start); + rlocn_set_ignored(mdah->raw_locns, mda_is_ignored(mda)); if (!_raw_write_mda_header(fid->fmt, mdac->area.dev, mdac->area.start, mdah)) { dm_pool_free(fid->fmt->cmd->mem, mdah); @@ -808,6 +809,7 @@ static int _vg_remove_raw(struct format_instance *fid, struct volume_group *vg, rlocn->offset = 0; rlocn->size = 0; rlocn->checksum = 0; + rlocn_set_ignored(mdah->raw_locns, mda_is_ignored(mda)); if (!_raw_write_mda_header(fid->fmt, mdac->area.dev, mdac->area.start, mdah)) { @@ -1513,6 +1515,7 @@ static int _text_pv_write(const struct format_type *fmt, struct physical_volume mdac = mda->metadata_locn; memset(&buf, 0, sizeof(buf)); mdah->size = mdac->area.size; + rlocn_set_ignored(mdah->raw_locns, mda_is_ignored(mda)); if (!_raw_write_mda_header(fmt, mdac->area.dev, mdac->area.start, mdah)) { if (!dev_close(pv->dev)) diff --git a/lib/format_text/text_label.c b/lib/format_text/text_label.c index 7083b89b5..ab9f595dc 100644 --- a/lib/format_text/text_label.c +++ b/lib/format_text/text_label.c @@ -301,6 +301,7 @@ static int _text_read(struct labeller *l, struct device *dev, void *buf, dm_list_iterate_items(mda, &info->mdas) { mdac = (struct mda_context *) mda->metadata_locn; if (!dev_open(mdac->area.dev)) { + mda_set_ignored(mda, 1); stack; continue; } @@ -308,6 +309,7 @@ static int _text_read(struct labeller *l, struct device *dev, void *buf, stack; goto close_dev; } + mda_set_ignored(mda, rlocn_is_ignored(mdah->raw_locns)); if ((vgname = vgname_from_mda(info->fmt, mdah, &mdac->area,