From c72f129f1c30574f97b55139d5e66a135367e038 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 6 Nov 2008 19:15:10 -0800 Subject: [PATCH] ebofs: fix lock recursion --- src/ebofs/Ebofs.cc | 9 ++++++++- src/ebofs/Ebofs.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/ebofs/Ebofs.cc b/src/ebofs/Ebofs.cc index c39a129dd9c89..09932999623f4 100644 --- a/src/ebofs/Ebofs.cc +++ b/src/ebofs/Ebofs.cc @@ -3658,9 +3658,17 @@ int Ebofs::collection_remove(coll_t cid, pobject_t oid, Context *onsafe) return 0; } + int Ebofs::collection_list(coll_t cid, vector& ls) { ebofs_lock.Lock(); + int num = _collection_list(cid, ls); + ebofs_lock.Unlock(); + return num; +} + +int Ebofs::_collection_list(coll_t cid, vector& ls) +{ dout(9) << "collection_list " << hex << cid << dec << dendl; if (!_collection_exists(cid)) { @@ -3683,7 +3691,6 @@ int Ebofs::collection_list(coll_t cid, vector& ls) } } - ebofs_lock.Unlock(); return num; } diff --git a/src/ebofs/Ebofs.h b/src/ebofs/Ebofs.h index ee14f13868ae2..789d264fcbc17 100644 --- a/src/ebofs/Ebofs.h +++ b/src/ebofs/Ebofs.h @@ -344,6 +344,7 @@ private: int _setattrs(pobject_t oid, map& attrset); int _rmattr(pobject_t oid, const char *name); bool _collection_exists(coll_t c); + int _collection_list(coll_t c, vector& o); int _create_collection(coll_t c); int _destroy_collection(coll_t c); int _collection_add(coll_t c, pobject_t o); -- 2.39.5