6800285318f0932e805d9278d521791a42a8139e
[gentoo.git] /
1 From 787ba33e5dba285dff874955a8f0d7aabd3f87fe Mon Sep 17 00:00:00 2001
2 From: Jason Dillaman <dillaman@redhat.com>
3 Date: Mon, 5 Jun 2017 08:17:05 -0400
4 Subject: [PATCH] librbd: filter expected error codes from
5  is_exclusive_lock_owner
6
7 Fixes: http://tracker.ceph.com/issues/20182
8 Signed-off-by: Jason Dillaman <dillaman@redhat.com>
9 (cherry picked from commit d4daaf54e6bc42cd4fb2111ea20b2042941b0c31)
10 ---
11  src/librbd/internal.cc | 4 +++-
12  1 file changed, 3 insertions(+), 1 deletion(-)
13
14 diff --git a/src/librbd/internal.cc b/src/librbd/internal.cc
15 index 9fecb1e1688f..6021be078090 100644
16 --- a/src/librbd/internal.cc
17 +++ b/src/librbd/internal.cc
18 @@ -2110,7 +2110,9 @@ int mirror_image_disable_internal(ImageCtx *ictx, bool force,
19      // might have been blacklisted by peer -- ensure we still own
20      // the lock by pinging the OSD
21      int r = ictx->exclusive_lock->assert_header_locked();
22 -    if (r < 0) {
23 +    if (r == -EBUSY || r == -ENOENT) {
24 +      return 0;
25 +    } else if (r < 0) {
26        return r;
27      }
28