Grow: Handle failure to load superblock in Grow_addbitmap()

Reported-by: Gioh Kim <gi-oh.kim@profitbricks.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
This commit is contained in:
Jes Sorensen 2016-05-12 14:30:10 -04:00
parent dac1b1115f
commit c152f3610f
1 changed files with 6 additions and 1 deletions

7
Grow.c
View File

@ -421,7 +421,8 @@ int Grow_addbitmap(char *devname, int fd, struct context *c, struct shape *s)
fd2 = dev_open(dv, O_RDWR);
if (fd2 < 0)
continue;
if (st->ss->load_super(st, fd2, NULL)==0) {
rv = st->ss->load_super(st, fd2, NULL);
if (!rv) {
if (st->ss->add_internal_bitmap(
st, &s->bitmap_chunk, c->delay,
s->write_behind, bitmapsize,
@ -432,6 +433,10 @@ int Grow_addbitmap(char *devname, int fd, struct context *c, struct shape *s)
close(fd2);
return 1;
}
} else {
pr_err("failed to load super-block.\n");
close(fd2);
return 1;
}
close(fd2);
}