Signed-off-by: Jianpeng Ma <[email protected]>
---
fs/ceph/caps.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c
index da0f9b8..626b0ec 100644
--- a/fs/ceph/caps.c
+++ b/fs/ceph/caps.c
@@ -203,6 +203,11 @@ out_alloc_count:
/* we didn't manage to reserve as much as we needed */
pr_warning("reserve caps ctx=%p ENOMEM need=%d got=%d\n",
ctx, need, have);
+ if (alloc) {
+ struct ceph_cap *tmp;
+ list_for_each_entry_safe(cap, tmp, &newcaps, caps_item)
+ kmem_cache_free(ceph_cap_cachep, cap);
+ }
return ret;
}
--
1.8.1.2