]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
client: do not defer releasing caps when revoking 43782/head
authorXiubo Li <xiubli@redhat.com>
Wed, 20 Oct 2021 04:03:07 +0000 (12:03 +0800)
committerXiubo Li <xiubli@redhat.com>
Wed, 3 Nov 2021 01:55:31 +0000 (09:55 +0800)
commit86f4bdaef522aba488433e034987e2f705f78acf
tree6fac3afc82fbbadf84b26862b2d9724c44df7103
parentd139e552aa604badbcbb251a1aa609cdef85e0d0
client: do not defer releasing caps when revoking

When revoking caps the if we queue to defer releasing them after 5s
or client_caps_release_delay. What if when the client keeps doing
mark_caps_dirty() for that inode in some use cases, the inode will
always be pushed back to the end of dirty_list. And in the tick()
it will check the dirty_list from front and will skip looping it
when it finds current one is not out of date.

This may cause the revocation in the MDS side stuck for a long
time.

Fixes: https://tracker.ceph.com/issues/52994
Signed-off-by: Xiubo Li <xiubli@redhat.com>
(cherry picked from commit 66098eeb1dbd0ffb4478c866ab4208e471d709f1)
src/client/Client.cc