1
0
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:
Zdenek Kabelac 2020-09-27 02:20:50 +02:00
parent 18c74666ee
commit 4cd356b26b

View File

@ -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,