mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
lib: drop unneeded vg_read call
Since we take a lock inside vg_lock_newname() and we do a full detection of presence of vgname inside all scanned labels, there is no point to do this for second time to be sure there is no such vg. The only side-effect of such call would be a full validation of some already exising VG metadata - but that's not the task for vgcreate when create a new VG. This call noticable reduces number of scans during 'vgcreate'.
This commit is contained in:
parent
a9b28a4f21
commit
04101bc430
@ -1,5 +1,6 @@
|
|||||||
Version 2.02.118 -
|
Version 2.02.118 -
|
||||||
=================================
|
=================================
|
||||||
|
Don't do a full read of VG when creating a new VG with an existing name.
|
||||||
Reduce number of VG metadata parsing when looking for vgname on a PV.
|
Reduce number of VG metadata parsing when looking for vgname on a PV.
|
||||||
Avoid reparsing same metadata when reading same metadata from multiple PVs.
|
Avoid reparsing same metadata when reading same metadata from multiple PVs.
|
||||||
Save extra device open/close when scanning device for size.
|
Save extra device open/close when scanning device for size.
|
||||||
|
@ -1009,7 +1009,6 @@ struct volume_group *vg_create(struct cmd_context *cmd, const char *vg_name)
|
|||||||
.context.vg_ref.vg_name = vg_name
|
.context.vg_ref.vg_name = vg_name
|
||||||
};
|
};
|
||||||
struct format_instance *fid;
|
struct format_instance *fid;
|
||||||
int consistent = 0;
|
|
||||||
uint32_t rc;
|
uint32_t rc;
|
||||||
|
|
||||||
if (!validate_name(vg_name)) {
|
if (!validate_name(vg_name)) {
|
||||||
@ -1023,15 +1022,6 @@ struct volume_group *vg_create(struct cmd_context *cmd, const char *vg_name)
|
|||||||
/* NOTE: let caller decide - this may be check for existence */
|
/* NOTE: let caller decide - this may be check for existence */
|
||||||
return _vg_make_handle(cmd, NULL, rc);
|
return _vg_make_handle(cmd, NULL, rc);
|
||||||
|
|
||||||
/* FIXME: Is this vg_read_internal necessary? Move it inside
|
|
||||||
vg_lock_newname? */
|
|
||||||
/* is this vg name already in use ? */
|
|
||||||
if ((vg = vg_read_internal(cmd, vg_name, NULL, WARN_PV_READ, &consistent))) {
|
|
||||||
log_error("A volume group called '%s' already exists.", vg_name);
|
|
||||||
unlock_and_release_vg(cmd, vg, vg_name);
|
|
||||||
return _vg_make_handle(cmd, NULL, FAILED_EXIST);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Strip dev_dir if present */
|
/* Strip dev_dir if present */
|
||||||
vg_name = strip_dir(vg_name, cmd->dev_dir);
|
vg_name = strip_dir(vg_name, cmd->dev_dir);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user