[lvm-devel] [PATCH 03/17] Add struct format_instance *fid field to struct physical_volume.
Peter Rajnoha
prajnoha at redhat.com
Mon Jan 24 11:03:54 UTC 2011
So PV has also a format instance from now on.
Also, for starters, let's create a new PV-based format_instance in
pv_create code.
Signed-off-by: Peter Rajnoha <prajnoha at redhat.com>
---
lib/metadata/metadata.c | 7 +++++++
lib/metadata/pv.h | 1 +
2 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c
index c3accaf..ed2084d 100644
--- a/lib/metadata/metadata.c
+++ b/lib/metadata/metadata.c
@@ -1547,6 +1547,7 @@ static struct physical_volume *_alloc_pv(struct dm_pool *mem, struct device *dev
if (!pv)
return_NULL;
+ pv->fid = NULL;
pv->pe_size = 0;
pv->pe_start = 0;
pv->pe_count = 0;
@@ -1638,6 +1639,12 @@ struct physical_volume *pv_create(const struct cmd_context *cmd,
goto bad;
}
+ if (!(pv->fid = fmt->ops->create_instance(fmt, (const char *) &pv->id,
+ NULL, NULL, NULL))) {
+ log_error("Couldn't create format instance for PV %s.", pv_dev_name(pv));
+ goto bad;
+ }
+
pv->fmt = fmt;
pv->vg_name = fmt->orphan_vg_name;
diff --git a/lib/metadata/pv.h b/lib/metadata/pv.h
index a02f6f8..a9efcfe 100644
--- a/lib/metadata/pv.h
+++ b/lib/metadata/pv.h
@@ -24,6 +24,7 @@ struct physical_volume {
struct id id;
struct device *dev;
const struct format_type *fmt;
+ struct format_instance *fid;
/*
* vg_name and vgid are used before the parent VG struct exists.
--
1.7.3.4
More information about the lvm-devel
mailing list