ceph: fix flush_snap logic after putting caps
authorJeff Layton <jlayton@kernel.org>
Thu, 10 Dec 2020 18:35:46 +0000 (13:35 -0500)
committerIlya Dryomov <idryomov@gmail.com>
Tue, 16 Feb 2021 11:09:51 +0000 (12:09 +0100)
commit64f36da5625f7f9853b86750eaa89d499d16a2e9
tree196d189e036cbe52d99cea9f6cb3fade04f2c769
parentf40ddce88593482919761f74910f42f4b84c004b
ceph: fix flush_snap logic after putting caps

A primary reason for skipping ceph_check_caps after putting the
references was to avoid the locking in ceph_check_caps during a
reconnect. __ceph_put_cap_refs can still call ceph_flush_snaps in that
case though, and that takes many of the same inconvenient locks.

Fix the logic in __ceph_put_cap_refs to skip flushing snaps when the
skip_checking_caps flag is set.

Fixes: e64f44a88465 ("ceph: skip checking caps when session reconnecting and releasing reqs")
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
fs/ceph/caps.c