diff options
Diffstat (limited to 'dm-cache-policy-mq_fix-large-scale-table-allocation-bug.patch')
-rw-r--r-- | dm-cache-policy-mq_fix-large-scale-table-allocation-bug.patch | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/dm-cache-policy-mq_fix-large-scale-table-allocation-bug.patch b/dm-cache-policy-mq_fix-large-scale-table-allocation-bug.patch index 71234c1a7..48bb5050d 100644 --- a/dm-cache-policy-mq_fix-large-scale-table-allocation-bug.patch +++ b/dm-cache-policy-mq_fix-large-scale-table-allocation-bug.patch @@ -1,17 +1,17 @@ diff --git a/drivers/md/dm-cache-policy-mq.c b/drivers/md/dm-cache-policy-mq.c -index cab6dd2..ec79c8f 100644 +index 416b7b7..9105771 100644 --- a/drivers/md/dm-cache-policy-mq.c +++ b/drivers/md/dm-cache-policy-mq.c -@@ -868,7 +868,7 @@ static void mq_destroy(struct dm_cache_policy *p) +@@ -866,7 +866,7 @@ static void mq_destroy(struct dm_cache_policy *p) + { struct mq_policy *mq = to_mq_policy(p); - free_bitset(mq->allocation_bitset); - kfree(mq->table); + vfree(mq->table); - free_entries(mq); + epool_exit(&mq->cache_pool); + epool_exit(&mq->pre_cache_pool); kfree(mq); - } -@@ -1189,7 +1189,7 @@ static struct dm_cache_policy *mq_create(dm_cblock_t cache_size, +@@ -1221,7 +1221,7 @@ static struct dm_cache_policy *mq_create(dm_cblock_t cache_size, mq->nr_buckets = next_power(from_cblock(cache_size) / 2, 16); mq->hash_bits = ffs(mq->nr_buckets) - 1; @@ -20,12 +20,3 @@ index cab6dd2..ec79c8f 100644 if (!mq->table) goto bad_alloc_table; -@@ -1200,7 +1200,7 @@ static struct dm_cache_policy *mq_create(dm_cblock_t cache_size, - return &mq->policy; - - bad_alloc_bitset: -- kfree(mq->table); -+ vfree(mq->table); - bad_alloc_table: - free_entries(mq); - bad_cache_alloc: |