On Tue, Mar 22, 2016 at 1:33 PM, Takashi Menjo <menjo.taka...@lab.ntt.co.jp> wrote:
> Errors have been ignored or not propagated in some code paths > in sd_snapshot_delete(). This patch adds error handling. > > Cc: Hitoshi Mitake <mitake.hito...@lab.ntt.co.jp> > Cc: Jeff Cody <jc...@redhat.com> > Cc: Vasiliy Tolstov <v.tols...@selfip.ru> > Cc: sheep...@lists.wpkg.org > > Signed-off-by: Takashi Menjo <menjo.taka...@lab.ntt.co.jp> > --- > block/sheepdog.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > Looks good to me. Reviewed-by: Hitoshi Mitake <mitake.hito...@lab.ntt.co.jp> Vasiliy, could you test it on your environment if you have a time? Thanks, Hitoshi > > diff --git a/block/sheepdog.c b/block/sheepdog.c > index a3aeae4..39d13d2 100644 > --- a/block/sheepdog.c > +++ b/block/sheepdog.c > @@ -2565,6 +2565,7 @@ static int sd_snapshot_delete(BlockDriverState *bs, > SheepdogVdiRsp *rsp = (SheepdogVdiRsp *)&hdr; > > if (!remove_objects(s)) { > + error_setg(errp, "failed to discard snapshot inode"); > return -1; > } > > @@ -2588,12 +2589,13 @@ static int sd_snapshot_delete(BlockDriverState *bs, > ret = find_vdi_name(s, s->name, snap_id, snap_tag, &vid, true, > &local_err); > if (ret) { > + error_propagate(errp, local_err); > return ret; > } > > fd = connect_to_sdog(s, &local_err); > if (fd < 0) { > - error_report_err(local_err); > + error_propagate(errp, local_err); > return -1; > } > > @@ -2601,16 +2603,17 @@ static int sd_snapshot_delete(BlockDriverState *bs, > buf, &wlen, &rlen); > closesocket(fd); > if (ret) { > + error_setg_errno(errp, -ret, "failed to delete %s", s->name); > return ret; > } > > switch (rsp->result) { > case SD_RES_NO_VDI: > - error_report("%s was already deleted", s->name); > + error_setg(errp, "%s was already deleted", s->name); > case SD_RES_SUCCESS: > break; > default: > - error_report("%s, %s", sd_strerror(rsp->result), s->name); > + error_setg(errp, "%s, %s", sd_strerror(rsp->result), s->name); > return -1; > } > > -- > 2.7.4.windows.1 > > > > -- > sheepdog mailing list > sheep...@lists.wpkg.org > https://lists.wpkg.org/mailman/listinfo/sheepdog >