ceph: always check dir caps asynchronously
authorXiubo Li <xiubli@redhat.com>
Thu, 4 Jan 2024 01:21:30 +0000 (09:21 +0800)
committerIlya Dryomov <idryomov@gmail.com>
Wed, 7 Feb 2024 13:58:02 +0000 (14:58 +0100)
commit07045648c07c5632e0dfd5ce084d3cd0cec0258a
treee080ace00b887d8378900220f155bace2bdad531
parentcda4672da1c26835dcbd7aec2bfed954eda9b5ef
ceph: always check dir caps asynchronously

The MDS will issue the 'Fr' caps for async dirop, while there is
buggy in kclient and it could miss releasing the async dirop caps,
which is 'Fsxr'. And then the MDS will complain with:

"[WRN] client.xxx isn't responding to mclientcaps(revoke) ..."

So when releasing the dirop async requests or when they fail we
should always make sure that being revoked caps could be released.

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