diff mbox series

ceph: periodically flush the cap releases

Message ID 20240710122708.900897-1-xiubli@redhat.com (mailing list archive)
State New, archived
Headers show
Series ceph: periodically flush the cap releases | expand

Commit Message

Xiubo Li July 10, 2024, 12:27 p.m. UTC
From: Xiubo Li <xiubli@redhat.com>

The MDS could be waiting the caps releases infinitely in some corner
case and then reporting the caps revoke stuck warning. To fix this
we should periodically flush the cap releases.

URL: https://tracker.ceph.com/issues/57244
Signed-off-by: Xiubo Li <xiubli@redhat.com>
---
 fs/ceph/mds_client.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Venky Shankar July 11, 2024, 11:08 a.m. UTC | #1
On Wed, Jul 10, 2024 at 5:57 PM <xiubli@redhat.com> wrote:
>
> From: Xiubo Li <xiubli@redhat.com>
>
> The MDS could be waiting the caps releases infinitely in some corner
> case and then reporting the caps revoke stuck warning. To fix this
> we should periodically flush the cap releases.
>
> URL: https://tracker.ceph.com/issues/57244
> Signed-off-by: Xiubo Li <xiubli@redhat.com>
> ---
>  fs/ceph/mds_client.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c
> index c750ebcad972..b7fcaa6e28b4 100644
> --- a/fs/ceph/mds_client.c
> +++ b/fs/ceph/mds_client.c
> @@ -5474,6 +5474,8 @@ static void delayed_work(struct work_struct *work)
>                 }
>                 mutex_unlock(&mdsc->mutex);
>
> +               ceph_flush_cap_releases(mdsc, s);
> +
>                 mutex_lock(&s->s_mutex);
>                 if (renew_caps)
>                         send_renew_caps(mdsc, s);
> --
> 2.43.0
>

LGTM.

Reviewed-by: Venky Shankar <vshankar@redhat.com>
diff mbox series

Patch

diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c
index c750ebcad972..b7fcaa6e28b4 100644
--- a/fs/ceph/mds_client.c
+++ b/fs/ceph/mds_client.c
@@ -5474,6 +5474,8 @@  static void delayed_work(struct work_struct *work)
 		}
 		mutex_unlock(&mdsc->mutex);
 
+		ceph_flush_cap_releases(mdsc, s);
+
 		mutex_lock(&s->s_mutex);
 		if (renew_caps)
 			send_renew_caps(mdsc, s);