This is a note to let you know that I've just added the patch titled

    dm: fix limits initialization when there are no data devices

to the 3.8-stable tree which can be found at:
    
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     dm-fix-limits-initialization-when-there-are-no-data-devices.patch
and it can be found in the queue-3.8 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.


>From 87eb5b21d92a92ac2da3163039d62df88c2b8422 Mon Sep 17 00:00:00 2001
From: Mike Christie <[email protected]>
Date: Fri, 1 Mar 2013 22:45:48 +0000
Subject: dm: fix limits initialization when there are no data devices

From: Mike Christie <[email protected]>

commit 87eb5b21d92a92ac2da3163039d62df88c2b8422 upstream.

dm_calculate_queue_limits will first reset the provided limits to
defaults using blk_set_stacking_limits; whereby defeating the purpose of
retaining the original live table's limits -- as was intended via commit
3ae706561637331aa578e52bb89ecbba5edcb7a9 ("dm: retain table limits when
swapping to new table with no devices").

Fix this improper limits initialization (in the no data devices case) by
avoiding the call to dm_calculate_queue_limits.

[patch header revised by Mike Snitzer]

Signed-off-by: Mike Christie <[email protected]>
Signed-off-by: Mike Snitzer <[email protected]>
Signed-off-by: Alasdair G Kergon <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
 drivers/md/dm.c |   12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -2433,7 +2433,7 @@ static void dm_queue_flush(struct mapped
  */
 struct dm_table *dm_swap_table(struct mapped_device *md, struct dm_table 
*table)
 {
-       struct dm_table *live_map, *map = ERR_PTR(-EINVAL);
+       struct dm_table *live_map = NULL, *map = ERR_PTR(-EINVAL);
        struct queue_limits limits;
        int r;
 
@@ -2456,10 +2456,12 @@ struct dm_table *dm_swap_table(struct ma
                dm_table_put(live_map);
        }
 
-       r = dm_calculate_queue_limits(table, &limits);
-       if (r) {
-               map = ERR_PTR(r);
-               goto out;
+       if (!live_map) {
+               r = dm_calculate_queue_limits(table, &limits);
+               if (r) {
+                       map = ERR_PTR(r);
+                       goto out;
+               }
        }
 
        map = __bind(md, table, &limits);


Patches currently in stable-queue which might be from [email protected] are

queue-3.8/dm-fix-limits-initialization-when-there-are-no-data-devices.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to