]> sourceware.org Git - lvm2.git/commitdiff
Ensure in-memory state matches on-disk state of mda ignore bit.
authorDave Wysochanski <dwysocha@redhat.com>
Mon, 28 Jun 2010 20:31:18 +0000 (20:31 +0000)
committerDave Wysochanski <dwysocha@redhat.com>
Mon, 28 Jun 2010 20:31:18 +0000 (20:31 +0000)
Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
lib/format_text/format-text.c
lib/format_text/text_label.c

index bc8e98ab34315cf144e75e2528c07d3ff86f70d9..d4c6a749338d39f78d4559ade6a304bcc118a3b3 100644 (file)
@@ -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))
index 7083b89b58814917b21ee2f5d8c0bdc255441d92..ab9f595dc7cc857431b73240f3af2cb76e4b8db2 100644 (file)
@@ -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,
This page took 0.041304 seconds and 5 git commands to generate.