diff options
author | 2013-05-10 14:37:14 +0100 | |
---|---|---|
committer | 2013-05-10 14:37:14 +0100 | |
commit | fa4d683af3693863bec761e2761a07e4c1351f86 (patch) | |
tree | 3f3045ed3325ba54673177fb9e4f95892471b252 /drivers/md | |
parent | dm stripe: fix regression in stripe_width calculation (diff) | |
download | linux-fa4d683af3693863bec761e2761a07e4c1351f86.tar.gz linux-fa4d683af3693863bec761e2761a07e4c1351f86.tar.bz2 linux-fa4d683af3693863bec761e2761a07e4c1351f86.zip |
dm cache: fix error return code in cache_create
Return -ENOMEM if memory allocation fails in cache_create
instead of 0 (to avoid NULL pointer dereference).
Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Cc: stable@vger.kernel.org
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Diffstat (limited to 'drivers/md')
-rw-r--r-- | drivers/md/dm-cache-target.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/md/dm-cache-target.c b/drivers/md/dm-cache-target.c index 10744091e6ca..6feaba24fcac 100644 --- a/drivers/md/dm-cache-target.c +++ b/drivers/md/dm-cache-target.c @@ -1971,6 +1971,7 @@ static int cache_create(struct cache_args *ca, struct cache **result) atomic_set(&cache->nr_migrations, 0); init_waitqueue_head(&cache->migration_wait); + r = -ENOMEM; cache->nr_dirty = 0; cache->dirty_bitset = alloc_bitset(from_cblock(cache->cache_size)); if (!cache->dirty_bitset) { |