]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
Client/Inode: wait_for_caps fixups
authorFrank S. Filz <ffilzlnx@mindspring.com>
Tue, 6 Sep 2022 18:44:43 +0000 (11:44 -0700)
committerFrank S. Filz <ffilzlnx@mindspring.com>
Mon, 24 Jul 2023 18:49:04 +0000 (11:49 -0700)
commita8d0158d0df141598098c2c89fb8f0b3ba0c5915
treec5df16f13a86efdbfda2e49406a771de9535024d
parentbff94987bb1570d244599e27c063a662a51acdcd
Client/Inode: wait_for_caps fixups

The non-blocking flush requires us to be able to re-add to
wait_for_caps but if we simply add to the list, we get stuck in an
infinite loop. Add a wait_for_caps_pending list to add to, and then
when done signalling, we move the wait_for_caps_pending items onto the
wait_for_caps list.

Also in handle_cap_flush_ack(), we need to complete the caps flushing
before signalling since with non-blocking flush, we will be actually
examining the caps from the completion rather than signalling a
condition variable in the completion.

Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
src/client/Client.cc
src/client/Client.h
src/client/Inode.h