int Objecter::create_pool_snap(int64_t pool, string& snap_name, Context *onfinish)
{
+ RWLock::WLocker wl(rwlock);
ldout(cct, 10) << "create_pool_snap; pool: " << pool << "; snap: " << snap_name << dendl;
const pg_pool_t *p = osdmap->get_pg_pool(pool);
int Objecter::allocate_selfmanaged_snap(int64_t pool, snapid_t *psnapid,
Context *onfinish)
{
+ RWLock::WLocker wl(rwlock);
ldout(cct, 10) << "allocate_selfmanaged_snap; pool: " << pool << dendl;
PoolOp *op = new PoolOp;
if (!op) return -ENOMEM;
int Objecter::delete_pool_snap(int64_t pool, string& snap_name, Context *onfinish)
{
+ RWLock::WLocker wl(rwlock);
ldout(cct, 10) << "delete_pool_snap; pool: " << pool << "; snap: " << snap_name << dendl;
const pg_pool_t *p = osdmap->get_pg_pool(pool);
}
int Objecter::delete_selfmanaged_snap(int64_t pool, snapid_t snap,
- Context *onfinish) {
+ Context *onfinish)
+{
+ RWLock::WLocker wl(rwlock);
ldout(cct, 10) << "delete_selfmanaged_snap; pool: " << pool << "; snap: "
<< snap << dendl;
PoolOp *op = new PoolOp;
int Objecter::create_pool(string& name, Context *onfinish, uint64_t auid,
int crush_rule)
{
+ RWLock::WLocker wl(rwlock);
ldout(cct, 10) << "create_pool name=" << name << dendl;
if (osdmap->lookup_pg_pool_name(name.c_str()) >= 0)
int Objecter::delete_pool(int64_t pool, Context *onfinish)
{
+ RWLock::WLocker wl(rwlock);
ldout(cct, 10) << "delete_pool " << pool << dendl;
if (!osdmap->have_pg_pool(pool))
*/
int Objecter::change_pool_auid(int64_t pool, Context *onfinish, uint64_t auid)
{
+ RWLock::WLocker wl(rwlock);
ldout(cct, 10) << "change_pool_auid " << pool << " to " << auid << dendl;
PoolOp *op = new PoolOp;
if (!op) return -ENOMEM;
void Objecter::pool_op_submit(PoolOp *op)
{
- RWLock::WLocker wl(rwlock);
-
+ assert(rwlock.is_locked());
if (mon_timeout > 0) {
op->ontimeout = new C_CancelPoolOp(op->tid, this);
timer.add_event_after(mon_timeout, op->ontimeout);
private:
void pool_op_submit(PoolOp *op);
void _pool_op_submit(PoolOp *op);
+ void _finish_pool_op(PoolOp *op);
public:
int create_pool_snap(int64_t pool, string& snapName, Context *onfinish);
int allocate_selfmanaged_snap(int64_t pool, snapid_t *psnapid, Context *onfinish);
void handle_pool_op_reply(MPoolOpReply *m);
int pool_op_cancel(ceph_tid_t tid, int r);
- void _finish_pool_op(PoolOp *op);
// --------------------------
// pool stats