dm thin: synchronize the pool mode during suspend
[deliverable/linux.git] / drivers / md / dm-thin.c
index 7e84baccf0ad6c90f7a3f62ec084007003319b21..dfa48ec7b8ea6bbe13cbc479778a2b099df3df7f 100644 (file)
@@ -1402,6 +1402,7 @@ static enum pool_mode get_pool_mode(struct pool *pool)
 static void set_pool_mode(struct pool *pool, enum pool_mode new_mode)
 {
        int r;
+       struct pool_c *pt = pool->ti->private;
        enum pool_mode old_mode = pool->pf.mode;
 
        switch (new_mode) {
@@ -1448,6 +1449,11 @@ static void set_pool_mode(struct pool *pool, enum pool_mode new_mode)
        }
 
        pool->pf.mode = new_mode;
+       /*
+        * The pool mode may have changed, sync it so bind_control_target()
+        * doesn't cause an unexpected mode transition on resume.
+        */
+       pt->adjusted_pf.mode = new_mode;
 }
 
 /*
This page took 0.027901 seconds and 5 git commands to generate.