Dear Martin, thank you for your patches? Am Freitag, den 01.03.2013, 23:28 +0100 schrieb mwilck@xxxxxxxx: > Without calling load_container at this point, the > info structure may be missing some important information. > In particular, information about secondary DDF RAID levels > may be wrong if information is only read from a single disk. > > If this fails, fall back to the previous code. > > Signed-off-by: Martin Wilck <mwilck@xxxxxxxx> > --- > Detail.c | 10 +++++++++- > 1 files changed, 9 insertions(+), 1 deletions(-) > > diff --git a/Detail.c b/Detail.c > index ab49803..9e52de8 100644 > --- a/Detail.c > +++ b/Detail.c > @@ -103,13 +103,21 @@ int Detail(char *dev, struct context *c) > * We want the name of the container, and the member > */ > int dn = st->container_dev; > + int cfd, err; > > member = subarray; > container = map_dev_preferred(dev2major(dn), dev2minor(dn), 1, c->prefer); > + cfd = open_dev(st->container_dev); > + if (cfd >= 0) { > + err = st->ss->load_container(st, cfd, NULL); > + close(cfd); > + if (err == 0) > + info = st->ss->container_content(st, subarray); > + } > } > > /* try to load a superblock */ > - if (st) for (d = 0; d < max_disks; d++) { > + if (st && !info) for (d = 0; d < max_disks; d++) { Is it ensured that `info` has been always NULL without your patch? Maybe also add a comment too. > mdu_disk_info_t disk; > char *dv; > int fd2; Thanks, Paul
Attachment:
signature.asc
Description: This is a digitally signed message part