]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commit
ceph: allow queueing cap/snap handling after putting cap references
authorJeff Layton <jlayton@kernel.org>
Thu, 10 Dec 2020 19:39:26 +0000 (14:39 -0500)
committerJeff Layton <jlayton@kernel.org>
Sat, 6 Feb 2021 11:52:09 +0000 (06:52 -0500)
commit978c16db431d2be0ea976385e8d1b3059c5a3065
treeb8f6071fc6fa9df9afbbbe5459a2640fd0be3206
parent018a7aa6f65d27e04ee9e61993a9f7cf62adb5dd
ceph: allow queueing cap/snap handling after putting cap references

Testing with the fscache overhaul has triggered some lockdep warnings
about circular lock dependencies involving page_mkwrite and the
mmap_lock. It'd be better to do the "real work" without the mmap lock
being held.

Change the skip_checking_caps parameter in __ceph_put_cap_refs to an
enum, and use that to determine whether to queue check_caps, do it
synchronously or not at all. Change ceph_page_mkwrite to do a
ceph_put_cap_refs_async().

Signed-off-by: Jeff Layton <jlayton@kernel.org>
fs/ceph/addr.c
fs/ceph/caps.c
fs/ceph/inode.c
fs/ceph/super.h