summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Kwolek <adam.kwolek@intel.com>2011-03-20 15:47:17 +1100
committerNeilBrown <neilb@suse.de>2011-03-20 15:47:17 +1100
commitc0f8269d5765d183311a21567330df87a866b9e7 (patch)
tree0cdc24efc59f09790af79925a7e5e3da96fe90d6
parent1ae42d9d99713ec40a56b9ba0289e362ace75f87 (diff)
downloadmdadm-c0f8269d5765d183311a21567330df87a866b9e7.tar.gz
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 <adam.kwolek@intel.com> Signed-off-by: NeilBrown <neilb@suse.de>
-rw-r--r--Manage.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/Manage.c b/Manage.c
index 5808557..0a966a8 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) {