From 2609f339028a6035a3fadb1190b565438000e35c Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Wed, 13 May 2015 14:08:41 +1000 Subject: [PATCH] Manage: when re-adding, do check avail size if ->sb cannot be found. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit avail_size1 requires ->sb, so we must only call it if ->sb was loaded. If ->sb wasn't loaded, then we are only proceding on the basis that the kernel might be able to work something out - we don't need to do any tests on size. Reported-by: Christoffer Hammarström Signed-off-by: NeilBrown URL: https://bugs.debian.org/784874 --- Manage.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Manage.c b/Manage.c index 225af81..2e602d7 100644 --- a/Manage.c +++ b/Manage.c @@ -781,7 +781,8 @@ int Manage_add(int fd, int tfd, struct mddev_dev *dv, } /* Make sure device is large enough */ - if (tst->ss->avail_size(tst, ldsize/512, INVALID_SECTORS) < + if (tst->sb && + tst->ss->avail_size(tst, ldsize/512, INVALID_SECTORS) < array_size) { if (dv->disposition == 'M') return 0;