]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librbd: snap_remove should ignore -ENOENT errors 4245/head
authorJason Dillaman <dillaman@redhat.com>
Mon, 16 Mar 2015 22:40:49 +0000 (18:40 -0400)
committerJason Dillaman <dillaman@redhat.com>
Wed, 1 Apr 2015 19:53:46 +0000 (15:53 -0400)
If the attempt to deregister the snapshot from the parent
image fails with -ENOENT, ignore the error as it is safe
to assume that the child is not associated with the parent.

Fixes: #11113
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit cf8094942ccdba831e03e5a79451cfa5d78a135f)

src/librbd/internal.cc

index e382999910a7d062ef0d61295a6e56352bb61edb..593895b44ddb1553219bba0188d98f16af7c7643 100644 (file)
@@ -531,8 +531,11 @@ namespace librbd {
          (scan_for_parents(ictx, our_pspec, snap_id) == -ENOENT)) {
          r = cls_client::remove_child(&ictx->md_ctx, RBD_CHILDREN,
                                       our_pspec, ictx->id);
-         if (r < 0)
+         if (r < 0 && r != -ENOENT) {
+            lderr(ictx->cct) << "snap_remove: failed to deregister from parent "
+                                "image" << dendl;
            return r;
+          }
       }
     }