From c0f8269d5765d183311a21567330df87a866b9e7 Mon Sep 17 00:00:00 2001 From: Adam Kwolek Date: Sun, 20 Mar 2011 15:47:17 +1100 Subject: [PATCH] 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 --- Manage.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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) { -- 2.39.2