diff options
author | NeilBrown <neilb@suse.de> | 2015-05-13 14:08:41 +1000 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2015-05-13 14:08:41 +1000 |
commit | 2609f339028a6035a3fadb1190b565438000e35c (patch) | |
tree | 935cf70d7863fd2ab05429631a6e957c03d0f531 | |
parent | b638e7d4408bb43e655974f52946ad1cc07c0a90 (diff) | |
download | mdadm-2609f339028a6035a3fadb1190b565438000e35c.tar.gz |
Manage: when re-adding, do check avail size if ->sb cannot be found.
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
-rw-r--r-- | Manage.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -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; |