Răsfoiți Sursa

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 ani în urmă
părinte
comite
2b69c83924
1 a modificat fișierele cu 1 adăugiri și 1 ștergeri
  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;
 	}
 	}