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 <josh.durgin@inktank.com>
This commit is contained in:
Josh Durgin 2013-12-31 16:26:04 -08:00
parent 7d27793f4f
commit e91fb91065
2 changed files with 5 additions and 3 deletions

View File

@ -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";

View File

@ -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,