ceph: fix snap context leak in error path
authorYan, Zheng <zyan@redhat.com>
Tue, 26 Jan 2016 15:05:37 +0000 (23:05 +0800)
committerIlya Dryomov <idryomov@gmail.com>
Thu, 4 Feb 2016 17:25:15 +0000 (18:25 +0100)
Signed-off-by: Yan, Zheng <zyan@redhat.com>
fs/ceph/file.c

index 7c85ddef68aba298bfdc040597a437f5b65878b8..eb9028e8cfc5197ef1ea99524fcbc67d67b4df91 100644 (file)
@@ -716,7 +716,6 @@ static void ceph_aio_retry_work(struct work_struct *work)
        ceph_osdc_build_request(req, req->r_ops[0].extent.offset,
                                snapc, CEPH_NOSNAP, &aio_req->mtime);
 
-       ceph_put_snap_context(snapc);
        ceph_osdc_put_request(orig_req);
 
        req->r_callback = ceph_aio_complete_req;
@@ -731,6 +730,7 @@ out:
                ceph_aio_complete_req(req, NULL);
        }
 
+       ceph_put_snap_context(snapc);
        kfree(aio_work);
 }