瀏覽代碼

md: improve errno return when setting array_size

Instead of always returns EINVAL if anything goes wrong
when setting the array size, add the option of
  E2BIG
if the size requested is too large.  This makes it easier
for user-space to be sure what went wrong.

Signed-off-by: NeilBrown <neilb@suse.de>
NeilBrown 16 年之前
父節點
當前提交
2b69c83924
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      drivers/md/md.c

+ 1 - 1
drivers/md/md.c

@@ -3683,7 +3683,7 @@ array_size_store(mddev_t *mddev, const char *buf, size_t len)
 		if (strict_blocks_to_sectors(buf, &sectors) < 0)
 		if (strict_blocks_to_sectors(buf, &sectors) < 0)
 			return -EINVAL;
 			return -EINVAL;
 		if (mddev->pers && mddev->pers->size(mddev, 0, 0) < sectors)
 		if (mddev->pers && mddev->pers->size(mddev, 0, 0) < sectors)
-			return -EINVAL;
+			return -E2BIG;
 
 
 		mddev->external_size = 1;
 		mddev->external_size = 1;
 	}
 	}