From: Josh Durgin Date: Wed, 1 Jan 2014 00:26:04 +0000 (-0800) Subject: librbd: better error when unprotect fails on unprotected snap X-Git-Tag: v0.77~62^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e91fb910653a672560867d4a81aa30f9d5dc0af8;p=ceph.git librbd: better error when unprotect fails on unprotected snap This will show up on the command line and logs, making it more clear than EINVAL. Fixes #6851 and #4045 Signed-off-by: Josh Durgin --- diff --git a/qa/qa_scripts/RbdLib.pm b/qa/qa_scripts/RbdLib.pm index f203b8ac0841..83a506e96c38 100755 --- a/qa/qa_scripts/RbdLib.pm +++ b/qa/qa_scripts/RbdLib.pm @@ -81,8 +81,7 @@ our $SNAP_PROTECT_ERR = "Device or resource busy"; our $SNAP_PROTECT_RM_ERR = "protected from removal"; our $SNAP_PROTECT_ERR1 = "No such file or directory"; our $SNAP_UNPROT_ERR = "snap_unprotect: image must support layering"; -our $SNAP_UNPROT_ERR1 = "snap_unprotect: can't unprotect"; -#our $SNAP_UNPROTECT_ERR - bug # 4045 +our $SNAP_UNPROT_ERR1 = "snap_unprotect: snapshot is already unprotected"; our $SNAP_PROT_ERR = "snap_protect: image must support layering"; our $CLONE_UNPROTECT_ERR = "parent snapshot must be protected"; our $CLONE_ARG_ERR = "destination image name was not specified"; diff --git a/src/librbd/internal.cc b/src/librbd/internal.cc index 81b70dd310c3..3d73bd0251b7 100644 --- a/src/librbd/internal.cc +++ b/src/librbd/internal.cc @@ -616,8 +616,11 @@ namespace librbd { if (r < 0) return r; - if (is_unprotected) + if (is_unprotected) { + lderr(ictx->cct) << "snap_unprotect: snapshot is already unprotected" + << dendl; return -EINVAL; + } r = cls_client::set_protection_status(&ictx->md_ctx, ictx->header_oid,