1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-04-01 18:50:41 +03:00

Free allocated segment type in error path

This commit is contained in:
Zdenek Kabelac 2012-01-25 21:54:00 +00:00
parent 1ef10bd81a
commit a980f56d2a
3 changed files with 13 additions and 5 deletions

View File

@ -452,8 +452,10 @@ int init_multiple_segtypes(struct cmd_context *cmd, struct segtype_library *segl
do {
if ((segtype = raid_segtype_fn[i](cmd)) &&
!lvm_register_segtype(seglib, segtype))
return 0;
!lvm_register_segtype(seglib, segtype)) {
dm_free(segtype);
return_0;
}
} while (raid_segtype_fn[++i]);
return 1;

View File

@ -772,8 +772,10 @@ int init_multiple_segtype(struct cmd_context *cmd, struct segtype_library *segli
segtype->private = NULL;
segtype->flags = SEG_REPLICATOR;
if (!lvm_register_segtype(seglib, segtype))
if (!lvm_register_segtype(seglib, segtype)) {
dm_free(segtype);
return_0;
}
log_very_verbose("Initialised segtype: " REPLICATOR_MODULE);
@ -785,8 +787,10 @@ int init_multiple_segtype(struct cmd_context *cmd, struct segtype_library *segli
segtype->private = NULL;
segtype->flags = SEG_REPLICATOR_DEV;
if (!lvm_register_segtype(seglib, segtype))
if (!lvm_register_segtype(seglib, segtype)) {
dm_free(segtype);
return_0;
}
log_very_verbose("Initialised segtype: " REPLICATOR_DEV_MODULE);

View File

@ -606,8 +606,10 @@ int init_multiple_segtypes(struct cmd_context *cmd, struct segtype_library *segl
segtype->flags |= SEG_MONITORED;
# endif /* DMEVENTD */
#endif
if (!lvm_register_segtype(seglib, segtype))
if (!lvm_register_segtype(seglib, segtype)) {
dm_free(segtype);
return_0;
}
log_very_verbose("Initialised segtype: %s", segtype->name);
}