summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2010-06-29 18:28:39 +0200
committerSage Weil <sage@newdream.net>2010-06-29 18:31:56 +0200
commit443b3760a06860187f135c1ecd56c2c7d4ad1022 (patch)
treed6a3ec8b77f133066bd7795acca33f461eee821a
parentceph: only release clean, unused caps with mds requests (diff)
downloadlinux-443b3760a06860187f135c1ecd56c2c7d4ad1022.tar.xz
linux-443b3760a06860187f135c1ecd56c2c7d4ad1022.zip
ceph: fix caps usage accounting for import (non-reserved) case
We need to increase the total and used counters when allocating a new cap in the non-reserved (cap import) case. Signed-off-by: Sage Weil <sage@newdream.net>
-rw-r--r--fs/ceph/caps.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c
index d4fcdda7676c..74144d6389f0 100644
--- a/fs/ceph/caps.c
+++ b/fs/ceph/caps.c
@@ -244,8 +244,14 @@ static struct ceph_cap *get_cap(struct ceph_cap_reservation *ctx)
struct ceph_cap *cap = NULL;
/* temporary, until we do something about cap import/export */
- if (!ctx)
- return kmem_cache_alloc(ceph_cap_cachep, GFP_NOFS);
+ if (!ctx) {
+ cap = kmem_cache_alloc(ceph_cap_cachep, GFP_NOFS);
+ if (cap) {
+ caps_use_count++;
+ caps_total_count++;
+ }
+ return cap;
+ }
spin_lock(&caps_list_lock);
dout("get_cap ctx=%p (%d) %d = %d used + %d resv + %d avail\n",