summaryrefslogtreecommitdiffstats
path: root/fs/ceph
diff options
context:
space:
mode:
authorChengguang Xu <cgxu519@gmx.com>2018-07-30 23:55:36 +0800
committerIlya Dryomov <idryomov@gmail.com>2018-10-22 10:28:19 +0200
commit3167893ae60e847b5a44d582fedb544cd0ae7ef5 (patch)
tree4919d6e5873983578d43b0d33b6396b56a955d01 /fs/ceph
parent84df9525b0c27f3ebc2ebb1864fa62a97fdedb7d (diff)
downloadlinux-3167893ae60e847b5a44d582fedb544cd0ae7ef5.tar.gz
linux-3167893ae60e847b5a44d582fedb544cd0ae7ef5.tar.bz2
linux-3167893ae60e847b5a44d582fedb544cd0ae7ef5.zip
ceph: reset cap hold timeout only for requeued inode
__cap_delay_requeue() only requeue inode which does not have CEPH_I_FLUSH flag, so avoid reset cap hold timeout for that inode. Signed-off-by: Chengguang Xu <cgxu519@gmx.com> Reviewed-by: "Yan, Zheng" <zyan@redhat.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'fs/ceph')
-rw-r--r--fs/ceph/caps.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c
index dd7dfdd2ba13..b26ae1673992 100644
--- a/fs/ceph/caps.c
+++ b/fs/ceph/caps.c
@@ -521,7 +521,6 @@ static void __cap_set_timeouts(struct ceph_mds_client *mdsc,
static void __cap_delay_requeue(struct ceph_mds_client *mdsc,
struct ceph_inode_info *ci)
{
- __cap_set_timeouts(mdsc, ci);
dout("__cap_delay_requeue %p flags %d at %lu\n", &ci->vfs_inode,
ci->i_ceph_flags, ci->i_hold_caps_max);
if (!mdsc->stopping) {
@@ -531,6 +530,7 @@ static void __cap_delay_requeue(struct ceph_mds_client *mdsc,
goto no_change;
list_del_init(&ci->i_cap_delay_list);
}
+ __cap_set_timeouts(mdsc, ci);
list_add_tail(&ci->i_cap_delay_list, &mdsc->cap_delay_list);
no_change:
spin_unlock(&mdsc->cap_delay_lock);