mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
dm: fix limits initialization when there are no data devices
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
3ae7065616 ("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]>
Cc: [email protected] # v3.6+
Signed-off-by: Alasdair G Kergon <[email protected]>
This commit is contained in:
parent
23cb21092e
commit
87eb5b21d9
1 changed files with 7 additions and 5 deletions
|
|
@ -2446,7 +2446,7 @@ static void dm_queue_flush(struct mapped_device *md)
|
|||
*/
|
||||
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;
|
||||
|
||||
|
|
@ -2469,10 +2469,12 @@ struct dm_table *dm_swap_table(struct mapped_device *md, struct dm_table *table)
|
|||
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);
|
||||
|
|
|
|||
Loading…
Reference in a new issue