mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-03 05:18:29 +03:00
Replicator: activate checks for missing vgs
Activation needs to have all remote VGs locked to pass for replicator. So if activated LV is replicator-dev LV - read all remote VGs.
This commit is contained in:
parent
b5f33faf9f
commit
9249fb12b8
@ -1,6 +1,7 @@
|
||||
Version 2.02.67 -
|
||||
===============================
|
||||
Check for missing VGs before taking lock_lv_vol (for Replicator).
|
||||
Activation code read and releases also remote VGs (Replicator).
|
||||
Check for missing VGs before taking lock_vol (Replicator).
|
||||
Update process_each_lv_in_vg() to use cmd_vg structure.
|
||||
Update _process_one_vg() to work with cmd_vg structure.
|
||||
Add functions for read and release VGs list.
|
||||
|
@ -865,6 +865,9 @@ static int _lv_suspend(struct cmd_context *cmd, const char *lvid_s,
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (!lv_read_replicator_vgs(lv))
|
||||
goto_out;
|
||||
|
||||
lv_calculate_readahead(lv, NULL);
|
||||
|
||||
/* If VG was precommitted, preload devices for the LV */
|
||||
@ -894,8 +897,10 @@ static int _lv_suspend(struct cmd_context *cmd, const char *lvid_s,
|
||||
out:
|
||||
if (lv_pre)
|
||||
vg_release(lv_pre->vg);
|
||||
if (lv)
|
||||
if (lv) {
|
||||
lv_release_replicator_vgs(lv);
|
||||
vg_release(lv->vg);
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
@ -1025,6 +1030,9 @@ int lv_deactivate(struct cmd_context *cmd, const char *lvid_s)
|
||||
goto_out;
|
||||
}
|
||||
|
||||
if (!lv_read_replicator_vgs(lv))
|
||||
goto_out;
|
||||
|
||||
lv_calculate_readahead(lv, NULL);
|
||||
|
||||
if (!monitor_dev_for_events(cmd, lv, 0))
|
||||
@ -1038,8 +1046,10 @@ int lv_deactivate(struct cmd_context *cmd, const char *lvid_s)
|
||||
if (!lv_info(cmd, lv, &info, 1, 0) || info.exists)
|
||||
r = 0;
|
||||
out:
|
||||
if (lv)
|
||||
if (lv) {
|
||||
lv_release_replicator_vgs(lv);
|
||||
vg_release(lv->vg);
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
@ -1118,6 +1128,9 @@ static int _lv_activate(struct cmd_context *cmd, const char *lvid_s,
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (!lv_read_replicator_vgs(lv))
|
||||
goto_out;
|
||||
|
||||
lv_calculate_readahead(lv, NULL);
|
||||
|
||||
if (exclusive)
|
||||
@ -1133,8 +1146,10 @@ static int _lv_activate(struct cmd_context *cmd, const char *lvid_s,
|
||||
stack;
|
||||
|
||||
out:
|
||||
if (lv)
|
||||
if (lv) {
|
||||
lv_release_replicator_vgs(lv);
|
||||
vg_release(lv->vg);
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user