From 09e1c856d091dc40053d01b9e386f1e1b9f6db74 Mon Sep 17 00:00:00 2001 From: John Mulligan Date: Mon, 8 Jun 2020 17:14:47 -0400 Subject: [PATCH] journal: do not return errors from remove omap func if omap missing The previous function used to remove omap keys apparently did not return errors when removing omap keys from a missing omap (oid). Mimic that behavior when using the api. Signed-off-by: John Mulligan --- internal/journal/omap.go | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/internal/journal/omap.go b/internal/journal/omap.go index 0662d5968..0e2209001 100644 --- a/internal/journal/omap.go +++ b/internal/journal/omap.go @@ -93,16 +93,25 @@ func removeMapKeys( } err = ioctx.RmOmapKeys(oid, keys) - if err != nil { + switch err { + case nil: + case rados.ErrNotFound: + // the previous implementation of removing omap keys (via the cli) + // treated failure to find the omap as a non-error. Do so here to + // mimic the previous behavior. + klog.V(4).Infof( + util.Log(ctx, "when removing omap keys, omap not found (pool=%q, namespace=%q, name=%q): %+v"), + poolName, namespace, oid, keys) + default: klog.Errorf( util.Log(ctx, "failed removing omap keys (pool=%q, namespace=%q, name=%q): %v"), poolName, namespace, oid, err) - } else { - klog.V(4).Infof( - util.Log(ctx, "removed omap keys (pool=%q, namespace=%q, name=%q): %+v"), - poolName, namespace, oid, keys) + return err } - return err + klog.V(4).Infof( + util.Log(ctx, "removed omap keys (pool=%q, namespace=%q, name=%q): %+v"), + poolName, namespace, oid, keys) + return nil } func setOMapKeys(