[RFC PATCH 03/16] DM: Error if enough space is not available.
From: Ram Pai
Date: Mon Aug 15 2016 - 13:37:42 EST
if enough space is not available to create a block of the specified size error
out.
Signed-off-by: Ram Pai <linuxram@xxxxxxxxxx>
---
drivers/md/dm-inplace-compress.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/drivers/md/dm-inplace-compress.c b/drivers/md/dm-inplace-compress.c
index 70d6c0e..17221a1 100644
--- a/drivers/md/dm-inplace-compress.c
+++ b/drivers/md/dm-inplace-compress.c
@@ -453,6 +453,12 @@ static int dm_icomp_read_or_create_super(struct dm_icomp_info *info)
info->data_blocks = data_blocks;
info->data_start = (1 + meta_blocks) << DMCP_BLOCK_SECTOR_SHIFT;
+ if ((data_blocks << DMCP_BLOCK_SECTOR_SHIFT) < info->ti->len) {
+ info->ti->error =
+ "Insufficient sectors to satisfy requested size";
+ return -ENOMEM;
+ }
+
addr = kzalloc(DMCP_BLOCK_SIZE, GFP_KERNEL);
if (!addr) {
info->ti->error = "Cannot allocate super";
--
1.7.1