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 <stable@xxxxxxxxxxxxxxx> know about it. >From 87eb5b21d92a92ac2da3163039d62df88c2b8422 Mon Sep 17 00:00:00 2001 From: Mike Christie <michaelc@xxxxxxxxxxx> Date: Fri, 1 Mar 2013 22:45:48 +0000 Subject: dm: fix limits initialization when there are no data devices From: Mike Christie <michaelc@xxxxxxxxxxx> 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 <michaelc@xxxxxxxxxxx> Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx> Signed-off-by: Alasdair G Kergon <agk@xxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- 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 michaelc@xxxxxxxxxxx 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html