diff options
author | Xiubo Li <xiubli@redhat.com> | 2019-11-26 07:32:22 -0500 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2019-12-09 20:55:10 +0100 |
commit | bba1560bd4a46aa0d16bb7d81abd9d0eb47dea36 (patch) | |
tree | 6838e4bd708e1e41839cbd14f91581b884ba1936 | |
parent | 3a3430affce5de301fc8e6e50fa3543d7597820e (diff) | |
download | linux-bba1560bd4a46aa0d16bb7d81abd9d0eb47dea36.tar.bz2 |
ceph: trigger the reclaim work once there has enough pending caps
The nr in ceph_reclaim_caps_nr() is very possibly larger than 1,
so we may miss it and the reclaim work couldn't triggered as expected.
Signed-off-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: "Yan, Zheng" <zyan@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
-rw-r--r-- | fs/ceph/mds_client.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c index f8735fc9f9d6..374db1bd57d1 100644 --- a/fs/ceph/mds_client.c +++ b/fs/ceph/mds_client.c @@ -2015,7 +2015,7 @@ void ceph_reclaim_caps_nr(struct ceph_mds_client *mdsc, int nr) if (!nr) return; val = atomic_add_return(nr, &mdsc->cap_reclaim_pending); - if (!(val % CEPH_CAPS_PER_RELEASE)) { + if ((val % CEPH_CAPS_PER_RELEASE) < nr) { atomic_set(&mdsc->cap_reclaim_pending, 0); ceph_queue_cap_reclaim_work(mdsc); } |