]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd: don't forget to call close_image() if remove_child() fails
authorIlya Dryomov <ilya.dryomov@inktank.com>
Wed, 29 Jan 2014 14:12:01 +0000 (16:12 +0200)
committerJosh Durgin <josh.durgin@inktank.com>
Sat, 9 Aug 2014 22:30:48 +0000 (15:30 -0700)
close_image() among other things unregisters a watcher that's been
registered by open_image().  Even though it'll timeout in 30 or so
seconds, it's not nice now that we check for watchers before starting
the removal process.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
(cherry picked from commit 4ebc32f37a4860bdc676491bf8b042c18fd619cf)

src/librbd/internal.cc

index a32ce9462290bd70b92cc68cddf07aba35fb46d6..68a9e571d2b8447da582a0cb384a30b50c49945b 100644 (file)
@@ -1385,6 +1385,7 @@ reprotect_and_return_err:
                                   parent_info.spec, id);
       if (r < 0 && r != -ENOENT) {
        lderr(cct) << "error removing child from children list" << dendl;
+        close_image(ictx);
        return r;
       }
       close_image(ictx);