mirror of
https://github.com/ceph/ceph
synced 2025-01-02 09:02:34 +00:00
librbd: error closing image while set to invalid snapshot
With cache disabled, closing the image will result in a flush which might result in the image being refreshed. If this happens while the image is set to an invalid snapshot, an error will be returned while closing the image. Fixes: #12765 Backport: infernalis Signed-off-by: Jason Dillaman <dillaman@redhat.com>
This commit is contained in:
parent
888a6337ab
commit
cd6ac726dd
@ -2140,11 +2140,12 @@ reprotect_and_return_err:
|
||||
if (ictx->parent) {
|
||||
uint64_t overlap;
|
||||
r = ictx->get_parent_overlap(ictx->snap_id, &overlap);
|
||||
if (r < 0)
|
||||
if (r < 0 && r != -ENOENT) {
|
||||
return r;
|
||||
if (!overlap ||
|
||||
}
|
||||
if (r == -ENOENT || overlap == 0 ||
|
||||
ictx->parent->md_ctx.get_id() !=
|
||||
ictx->get_parent_pool_id(ictx->snap_id) ||
|
||||
ictx->get_parent_pool_id(ictx->snap_id) ||
|
||||
ictx->parent->id != ictx->get_parent_image_id(ictx->snap_id) ||
|
||||
ictx->parent->snap_id != ictx->get_parent_snap_id(ictx->snap_id)) {
|
||||
ictx->clear_nonexistence_cache();
|
||||
|
Loading…
Reference in New Issue
Block a user