]> sourceware.org Git - lvm2.git/commitdiff
Use new alloc_fid fn for common format instance initialisation.
authorPeter Rajnoha <prajnoha@redhat.com>
Fri, 11 Mar 2011 14:30:27 +0000 (14:30 +0000)
committerPeter Rajnoha <prajnoha@redhat.com>
Fri, 11 Mar 2011 14:30:27 +0000 (14:30 +0000)
WHATS_NEW
lib/format1/format1.c
lib/format_pool/format_pool.c
lib/format_text/format-text.c
lib/metadata/metadata.c
lib/metadata/metadata.h

index 42d74914b44bc845ecac9145bc7d457e40ee0d51..d8faa3916119e65aa7dc6af2c775fccacc9660a5 100644 (file)
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
 Version 2.02.85 - 
 ===================================
+  Use new alloc_fid fn for common format instance initialisation.
   Optimise _get_token() and _eat_space().
   Add _lv_postorder_vg() to improve efficiency for all LVs in VG.
   Use hash tables to speedup string search in validate_vg().
index d639bb2cdf52e3e9b41c3cdb6115eda0e9a856e6..97d34a92123b67c63bde516d860d9ad655ebf066 100644 (file)
@@ -504,15 +504,9 @@ static struct format_instance *_format1_create_instance(const struct format_type
        struct format_instance *fid;
        struct metadata_area *mda;
 
-       if (!(fid = dm_pool_alloc(fmt->cmd->mem, sizeof(*fid))))
+       if (!(fid = alloc_fid(fmt, fic)))
                return_NULL;
 
-       fid->fmt = fmt;
-       fid->type = fic->type;
-
-       dm_list_init(&fid->metadata_areas_in_use);
-       dm_list_init(&fid->metadata_areas_ignored);
-
        /* Define a NULL metadata area */
        if (!(mda = dm_pool_zalloc(fmt->cmd->mem, sizeof(*mda)))) {
                dm_pool_free(fmt->cmd->mem, fid);
index a14bf8c7a924615962842adda246fa41a7d7094b..ac9a919259f93753d2ac02a10626ca894cdb8d46 100644 (file)
@@ -228,17 +228,8 @@ static struct format_instance *_pool_create_instance(const struct format_type *f
        struct format_instance *fid;
        struct metadata_area *mda;
 
-       if (!(fid = dm_pool_zalloc(fmt->cmd->mem, sizeof(*fid)))) {
-               log_error("Unable to allocate format instance structure for "
-                         "pool format");
-               return NULL;
-       }
-
-       fid->fmt = fmt;
-       fid->type = fic->type;
-
-       dm_list_init(&fid->metadata_areas_in_use);
-       dm_list_init(&fid->metadata_areas_ignored);
+       if (!(fid = alloc_fid(fmt, fic)))
+               return_NULL;
 
        /* Define a NULL metadata area */
        if (!(mda = dm_pool_zalloc(fmt->cmd->mem, sizeof(*mda)))) {
index c5db2784a7e0a35dcc726f0c78e4e3a3650dc746..e5156f857805a98ff9c24cdbad778e34ba584794 100644 (file)
@@ -2190,21 +2190,13 @@ static int _text_pv_resize(const struct format_type *fmt,
 
 /* NULL vgname means use only the supplied context e.g. an archive file */
 static struct format_instance *_text_create_text_instance(const struct format_type *fmt,
-                                                          const struct format_instance_ctx *fic)
+                                                         const struct format_instance_ctx *fic)
 {
        struct format_instance *fid;
        int r;
 
-       if (!(fid = dm_pool_alloc(fmt->cmd->mem, sizeof(*fid)))) {
-               log_error("Couldn't allocate format instance object.");
-               return NULL;
-       }
-
-       fid->fmt = fmt;
-       fid->type = fic->type;
-
-       dm_list_init(&fid->metadata_areas_in_use);
-       dm_list_init(&fid->metadata_areas_ignored);
+       if (!(fid = alloc_fid(fmt, fic)))
+               return_NULL;
 
        if (fid->type & FMT_INSTANCE_VG)
                r = _create_vg_text_instance(fid, fic);
index 058c026e6735a17a8f45c1947b7826484081f553..67401e767546099b3fde358de371ad0cd3406a08 100644 (file)
@@ -3941,6 +3941,25 @@ uint32_t vg_lock_newname(struct cmd_context *cmd, const char *vgname)
        return FAILED_EXIST;
 }
 
+struct format_instance *alloc_fid(const struct format_type *fmt,
+                                 const struct format_instance_ctx *fic)
+{
+       struct format_instance *fid;
+
+       if (!(fid = dm_pool_zalloc(fmt->cmd->mem, sizeof(*fid)))) {
+               log_error("Couldn't allocate format_instance object.");
+               return NULL;
+       }
+
+       fid->fmt = fmt;
+       fid->type = fic->type;
+
+       dm_list_init(&fid->metadata_areas_in_use);
+       dm_list_init(&fid->metadata_areas_ignored);
+
+       return fid;
+}
+
 void vg_set_fid(struct volume_group *vg,
                 struct format_instance *fid)
 {
index 1982711d0bffcffa1b6d02cabb6727ea1e66afcb..8f0a6b189f6272d2d185ad1df41b9c0a9143a68c 100644 (file)
@@ -191,6 +191,21 @@ struct metadata_area *mda_copy(struct dm_pool *mem,
 unsigned mda_is_ignored(struct metadata_area *mda);
 void mda_set_ignored(struct metadata_area *mda, unsigned ignored);
 unsigned mda_locns_match(struct metadata_area *mda1, struct metadata_area *mda2);
+
+struct format_instance_ctx {
+       uint32_t type;
+       union {
+               const char *pv_id;
+               struct {
+                       const char *vg_name;
+                       const char *vg_id;
+               } vg_ref;
+               void *private;
+       } context;
+};
+
+struct format_instance *alloc_fid(const struct format_type *fmt,
+                                 const struct format_instance_ctx *fic);
 void vg_set_fid(struct volume_group *vg, struct format_instance *fid);
 /* FIXME: Add generic interface for mda counts based on given key. */
 int fid_add_mda(struct format_instance *fid, struct metadata_area *mda,
@@ -229,18 +244,6 @@ struct seg_list {
        struct lv_segment *seg;
 };
 
-struct format_instance_ctx {
-       uint32_t type;
-       union {
-               const char *pv_id;
-               struct {
-                       const char *vg_name;
-                       const char *vg_id;
-               } vg_ref;
-               void *private;
-       } context;
-};
-
 /*
  * Ownership of objects passes to caller.
  */
This page took 0.058916 seconds and 5 git commands to generate.