]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cephfs: Fixed a bug that read operation hung in Client::get_caps when the Fc caps... 60695/head
authorchentao.2022 <chentao.2022@bytedance.com>
Mon, 5 Aug 2024 15:38:50 +0000 (23:38 +0800)
committerVenky Shankar <vshankar@redhat.com>
Wed, 4 Jun 2025 03:57:13 +0000 (03:57 +0000)
Fixes: https://tracker.ceph.com/issues/65971
Signed-off-by: Tod Chen <chentao.2022@bytedance.com>
(cherry picked from commit 7f723017454957f3e4e1dbb4613bcf94afa4151e)

src/client/Client.cc

index 0be0e141d2bd004076de095f5b4310abb1d86df5..e05ca9aa3ae019d69135d5c7a3d7e2c3876d1b2d 100644 (file)
@@ -3627,6 +3627,9 @@ void Client::put_cap_ref(Inode *in, int cap)
     if (last & CEPH_CAP_FILE_CACHE) {
       ldout(cct, 5) << __func__ << " dropped last FILE_CACHE ref on " << *in << dendl;
       ++put_nref;
+
+      ldout(cct, 10) << __func__ << " calling signal_caps_inode" << dendl;
+      signal_cond_list(in->waitfor_caps);
     }
     if (drop)
       check_caps(in, 0);