]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
client: drop null child dentries before try pruning inode's alias 24119/head
authorYan, Zheng <zyan@redhat.com>
Fri, 1 Dec 2017 02:17:18 +0000 (10:17 +0800)
committerYan, Zheng <zyan@redhat.com>
Mon, 17 Sep 2018 01:28:43 +0000 (09:28 +0800)
commitd727b20f41efb9572e89c5e623950a710973f842
treea319b0294a0f18eb4121434fa8700ae67de21bcc
parent44a54c42930ffcf58988c5578f96c342c68d88bf
client: drop null child dentries before try pruning inode's alias

Null child dentries holds reference on inode's alias, they prevents
Client::trim_caps() from trimming the inode. Null dentries are trimmed
by Client::trim_cache() according to 'client_cache_size' config option.
So Client::trim_caps() may fail to trim as many caps as MDS asked when
client cache size is smaller than the config limit.

Fixes: http://tracker.ceph.com/issues/22504
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
(cherry picked from commit 99b1b959e13219dee10f5649be1c1c15e25f9ccd)
src/client/Client.cc
src/client/Client.h
src/client/Dir.h