]> sourceware.org Git - lvm2.git/commitdiff
Set delay_resume_if_new on deptree snapshot origin.
authorAlasdair Kergon <agk@redhat.com>
Tue, 15 May 2012 21:27:24 +0000 (21:27 +0000)
committerAlasdair Kergon <agk@redhat.com>
Tue, 15 May 2012 21:27:24 +0000 (21:27 +0000)
(Must avoid activating snapshot origin more than once concurrently.)

WHATS_NEW_DM
libdm/libdm-deptree.c

index 6800b5a82059a23e34aeff2f4bcc5814cdb5a3ac..7b74ecf28a817df62b9296d9dc70b1d0745453e9 100644 (file)
@@ -1,5 +1,6 @@
 Version 1.02.75 - 
 ================================
+  Set delay_resume_if_new on deptree snapshot origin.
   Log value chosen in _find_config_bool like other variable types do.
   Synchronize with dead of dmeventd.
   Rename (Blk)DevNames/DevNos dmsetup header to (Blk)DevNamesUsed/DevNosUsed.
index eb942a1d4966fc8d22a109bb398310cc5eec0fef..5ce44d08897c73376dae346196c196ed0de47311 100644 (file)
@@ -2358,8 +2358,10 @@ static int _load_node(struct dm_tree_node *dnode)
        if ((r = dm_task_run(dmt))) {
                r = dm_task_get_info(dmt, &dnode->info);
                if (r && !dnode->info.inactive_table)
-                       log_verbose("Suppressed %s identical table reload.",
-                                   dnode->name);
+                       log_verbose("Suppressed %s (%" PRIu32 ":%" PRIu32
+                                   ") identical table reload.",
+                                   dnode->name,
+                                   dnode->info.major, dnode->info.minor);
 
                existing_table_size = dm_task_get_existing_table_size(dmt);
                if ((dnode->props.size_changed =
@@ -2548,6 +2550,12 @@ int dm_tree_node_add_snapshot_origin_target(struct dm_tree_node *dnode,
        /* Resume snapshot origins after new snapshots */
        dnode->activation_priority = 1;
 
+       /*
+        * Don't resume the origin immediately in case it is a non-trivial 
+        * target that must not be active more than once concurrently!
+        */
+       origin_node->props.delay_resume_if_new = 1;
+
        return 1;
 }
 
This page took 0.041975 seconds and 5 git commands to generate.