File 0061-Manage-when-re-adding-do-check-avail-size-if-sb-cann.patch of Package mdadm.5365
From 2609f339028a6035a3fadb1190b565438000e35c Mon Sep 17 00:00:00 2001
From: NeilBrown <neilb@suse.de>
Date: Wed, 13 May 2015 14:08:41 +1000
Subject: [PATCH 081/359] Manage: when re-adding, do check avail size if ->sb
cannot be found.
References: bsc#1081910
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 <christoffer.hammarstrom@linuxgods.com>
Signed-off-by: NeilBrown <neilb@suse.de>
Url: https://bugs.debian.org/784874
Signed-off-by: Coly Li <colyli@suse.de>
---
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;
--
2.16.1