mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-02 01:18:26 +03:00
thin: remove unneeded code test
Since we detect already transaction if before starting to build dm tree - this extra check is a duplicate that would only capture very tiny 'race' and we later validate transaction_id with suspended snapshot origin.
This commit is contained in:
parent
18c74666ee
commit
4cd356b26b
@ -265,8 +265,6 @@ static int _thin_pool_add_target_line(struct dev_manager *dm,
|
|||||||
char *metadata_dlid, *pool_dlid;
|
char *metadata_dlid, *pool_dlid;
|
||||||
const struct lv_thin_message *lmsg;
|
const struct lv_thin_message *lmsg;
|
||||||
const struct logical_volume *origin;
|
const struct logical_volume *origin;
|
||||||
struct lvinfo info;
|
|
||||||
uint64_t transaction_id = 0;
|
|
||||||
unsigned attr;
|
unsigned attr;
|
||||||
uint64_t low_water_mark;
|
uint64_t low_water_mark;
|
||||||
int threshold;
|
int threshold;
|
||||||
@ -351,24 +349,6 @@ static int _thin_pool_add_target_line(struct dev_manager *dm,
|
|||||||
case DM_THIN_MESSAGE_CREATE_THIN:
|
case DM_THIN_MESSAGE_CREATE_THIN:
|
||||||
origin = first_seg(lmsg->u.lv)->origin;
|
origin = first_seg(lmsg->u.lv)->origin;
|
||||||
/* Check if the origin is suspended */
|
/* Check if the origin is suspended */
|
||||||
if (origin && lv_info(cmd, origin, 1, &info, 0, 0) &&
|
|
||||||
info.exists && !info.suspended) {
|
|
||||||
/* Origin is not suspended, but the transaction may have been
|
|
||||||
* already transfered, so test for transaction_id and
|
|
||||||
* allow to pass in the message for dmtree processing
|
|
||||||
* so it will skip all messages later.
|
|
||||||
*/
|
|
||||||
if (!lv_thin_pool_transaction_id(seg->lv, &transaction_id))
|
|
||||||
return_0; /* Thin pool should exist and work */
|
|
||||||
if ((transaction_id + 1) != seg->transaction_id) {
|
|
||||||
log_error("Omitting suspend of thin snapshot origin %s with expected "
|
|
||||||
"transaction_id " FMTu64 ", but active pool has " FMTu64 ".",
|
|
||||||
display_lvname(origin),
|
|
||||||
!seg->transaction_id ? 0 : seg->transaction_id - 1,
|
|
||||||
transaction_id);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
log_debug_activation("Thin pool create_%s %s.", (!origin) ? "thin" : "snap", lmsg->u.lv->name);
|
log_debug_activation("Thin pool create_%s %s.", (!origin) ? "thin" : "snap", lmsg->u.lv->name);
|
||||||
if (!dm_tree_node_add_thin_pool_message(node,
|
if (!dm_tree_node_add_thin_pool_message(node,
|
||||||
(!origin) ? lmsg->type : DM_THIN_MESSAGE_CREATE_SNAP,
|
(!origin) ? lmsg->type : DM_THIN_MESSAGE_CREATE_SNAP,
|
||||||
|
Loading…
Reference in New Issue
Block a user