[PATCH] FIX: Add spare throws exception (v2)
am 18.03.2011 10:08:04 von adam.kwolek
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
---
Manage.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/Manage.c b/Manage.c
index 5808557..217c6b6 100644
--- a/Manage.c
+++ b/Manage.c
@@ -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) {
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] FIX: Add spare throws exception (v2)
am 20.03.2011 05:48:53 von NeilBrown
On Fri, 18 Mar 2011 10:08:04 +0100 Adam Kwolek wrote:
> 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
> ---
>
> Manage.c | 6 +++---
> 1 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/Manage.c b/Manage.c
> index 5808557..217c6b6 100644
> --- a/Manage.c
> +++ b/Manage.c
> @@ -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) {
Yes, this is better thanks.
'st' is only used to read the superblock of the new device to see if it is
already a member of the array and so a 're-add' is appropriate.
'tst' should be used whenever working on 'the whole array'.
I really should give these variables better names.
Thanks,
NeilBrown
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html