On Thu, Feb 13, 2020 at 1:29 AM Jeff Layton <jlayton@xxxxxxxxxx> wrote: > > I've dropped the async unlink patch from testing branch and am > resubmitting it here along with the rest of the create patches. > > Zheng had pointed out that DIR_* caps should be cleared when the session > is reconnected. The underlying submission code needed changes to > handle that so it needed a bit of rework (along with the create code). > > Since v3: > - rework async request submission to never queue the request when the > session isn't open > - clean out DIR_* caps, layouts and delegated inodes when session goes down > - better ordering for dependent requests > - new mount options (wsync/nowsync) instead of module option > - more comprehensive error handling > > Jeff Layton (9): > ceph: add flag to designate that a request is asynchronous > ceph: perform asynchronous unlink if we have sufficient caps > ceph: make ceph_fill_inode non-static > ceph: make __take_cap_refs non-static > ceph: decode interval_sets for delegated inos > ceph: add infrastructure for waiting for async create to complete > ceph: add new MDS req field to hold delegated inode number > ceph: cache layout in parent dir on first sync create > ceph: attempt to do async create when possible > > fs/ceph/caps.c | 73 +++++++--- > fs/ceph/dir.c | 101 +++++++++++++- > fs/ceph/file.c | 253 +++++++++++++++++++++++++++++++++-- > fs/ceph/inode.c | 58 ++++---- > fs/ceph/mds_client.c | 156 +++++++++++++++++++-- > fs/ceph/mds_client.h | 17 ++- > fs/ceph/super.c | 20 +++ > fs/ceph/super.h | 21 ++- > include/linux/ceph/ceph_fs.h | 17 ++- > 9 files changed, 637 insertions(+), 79 deletions(-) > Please implement something like https://github.com/ceph/ceph/pull/32576/commits/e9aa5ec062fab8324e13020ff2f583537e326a0b. MDS may revoke Fx when replaying unsafe/async requests. Make mds not do this is quite complex. > -- > 2.24.1 >