From: Adam Kwolek Date: Sun, 20 Mar 2011 04:47:17 +0000 (+1100) Subject: FIX: Add spare throws exception (v2) X-Git-Tag: mdadm-3.2.1~28 X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fmdadm.git;a=commitdiff_plain;h=c0f8269d5765d183311a21567330df87a866b9e7 FIX: Add spare throws exception (v2) sync_metadata() requires st->sb to be loaded, otherwise exception is generated. This fails expansion, because spares cannot be added. metadata update uses tst instead st pointer, it is better than loading anchor for st as I proposed previously. Signed-off-by: Adam Kwolek Signed-off-by: NeilBrown --- diff --git a/Manage.c b/Manage.c index 5808557c..0a966a86 100644 --- a/Manage.c +++ b/Manage.c @@ -746,7 +746,7 @@ int Manage_subdevs(char *devname, int fd, st, NULL, update, devname, verbose, 0, NULL); if (rv == 0) - rv = tst->ss->store_super(st, tfd); + rv = st->ss->store_super(st, tfd); close(tfd); tfd = -1; if (rv != 0) { @@ -914,10 +914,10 @@ int Manage_subdevs(char *devname, int fd, close(container_fd); return 1; } - if (st->update_tail) - flush_metadata_updates(st); + if (tst->update_tail) + flush_metadata_updates(tst); else - tst->ss->sync_metadata(st); + tst->ss->sync_metadata(tst); sra = sysfs_read(container_fd, -1, 0); if (!sra) {