ceph: cap tracking for async directory operations
authorJeff Layton <jlayton@kernel.org>
Tue, 18 Feb 2020 19:12:45 +0000 (14:12 -0500)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 30 Mar 2020 10:42:41 +0000 (12:42 +0200)
commita25949b99003b7e6c2604a3fc8b8d62385508477
tree048d1659867836f385f2df12ee1cb57ca6819f9e
parent40dcf75e82f875fd95abb99d08ef3eeb025e16a9
ceph: cap tracking for async directory operations

Track and correctly handle directory caps for asynchronous operations.
Add aliases for Frc caps that we now designate at Dcu caps (when dealing
with directories).

Unlike file caps, we don't reclaim these when the session goes away, and
instead preemptively release them. In-flight async dirops are instead
handled during reconnect phase. The client needs to re-do a synchronous
operation in order to re-get directory caps.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: "Yan, Zheng" <zyan@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
fs/ceph/caps.c
fs/ceph/mds_client.c
fs/ceph/mds_client.h
include/linux/ceph/ceph_fs.h