ceph: flush all caps releases when syncing the whole filesystem
authorXiubo Li <xiubli@redhat.com>
Mon, 29 Jul 2024 08:04:11 +0000 (16:04 +0800)
committerIlya Dryomov <idryomov@gmail.com>
Tue, 24 Sep 2024 20:51:28 +0000 (22:51 +0200)
commitadc52461767f675264f2876d61e7220c113023e8
treec64561f122bb22e2ee04a1c08f04bf88067ca624
parentc085f6ca956f75d40422db96eaa6298867db8dca
ceph: flush all caps releases when syncing the whole filesystem

We have hit a race between cap releases and cap revoke request
that will cause the check_caps() to miss sending a cap revoke ack
to MDS. And the client will depend on the cap release to release
that revoking caps, which could be delayed for some unknown reasons.

In Kclient we have figured out the RCA about race and we need
a way to explictly trigger this manually could help to get rid
of the caps revoke stuck issue.

Link: https://tracker.ceph.com/issues/67221
Signed-off-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
fs/ceph/caps.c
fs/ceph/mds_client.c
fs/ceph/super.c
fs/ceph/super.h