ceph: fix rare potential cap leak
[firefly-linux-kernel-4.4.55.git] / fs / ceph / caps.c
index 2a5404c1c42f4efd1be78f5d24eed337c24429e3..591202bc96684647ffc8522985f58750971abe2d 100644 (file)
@@ -569,7 +569,8 @@ retry:
                list_add_tail(&cap->session_caps, &session->s_caps);
                session->s_nr_caps++;
                spin_unlock(&session->s_cap_lock);
-       }
+       } else if (new_cap)
+               ceph_put_cap(mdsc, new_cap);
 
        if (!ci->i_snap_realm) {
                /*