]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
objecter: add optional crush_rule parameter; set in pool_op_submit as needed
authorGreg Farnum <gregf@hq.newdream.net>
Wed, 26 May 2010 23:44:17 +0000 (16:44 -0700)
committerGreg Farnum <gregf@hq.newdream.net>
Wed, 26 May 2010 23:58:38 +0000 (16:58 -0700)
src/osdc/Objecter.cc
src/osdc/Objecter.h

index 616a874ebf30be0c6426b4faf744d7feed830beb..cf07e6a3b1520a64de154dd3204d47794ca200e3 100644 (file)
@@ -738,7 +738,8 @@ int Objecter::delete_selfmanaged_snap(int pool, snapid_t snap,
   return 0;
 }
 
-int Objecter::create_pool(string& name, Context *onfinish, uint64_t auid)
+int Objecter::create_pool(string& name, Context *onfinish, uint64_t auid,
+                         __u8 crush_rule)
 {
   dout(10) << "create_pool name=" << name << dendl;
   PoolOp *op = new PoolOp;
@@ -751,6 +752,7 @@ int Objecter::create_pool(string& name, Context *onfinish, uint64_t auid)
   op->pool_op = POOL_OP_CREATE;
   op_pool[op->tid] = op;
   op->auid = auid;
+  op->crush_rule = crush_rule;
 
   pool_op_submit(op);
 
@@ -805,6 +807,7 @@ void Objecter::pool_op_submit(PoolOp *op) {
                           op->name, op->pool_op,
                           op->auid, last_seen_osdmap_version);
   if (op->snapid) m->snapid = op->snapid;
+  if (op->crush_rule) m->crush_rule = op->crush_rule;
   monc->send_mon_message(m);
   op->last_submit = g_clock.now();
 }
index 0b71176edf87f488514ef6177ec278a95f5617cc..8a3e2ba1655675d48f34eb27b77006b34f779f25 100644 (file)
@@ -340,12 +340,13 @@ public:
     Context *onfinish;
     int pool_op;
     uint64_t auid;
+    __u8 crush_rule;
     snapid_t snapid;
     bufferlist *blp;
 
     utime_t last_submit;
     PoolOp() : tid(0), pool(0), onfinish(0), pool_op(0),
-              auid(0), snapid(0), blp(NULL) {}
+              auid(0), crush_rule(0), snapid(0), blp(NULL) {}
   };
 
 
@@ -676,7 +677,8 @@ public:
   int delete_pool_snap(int pool, string& snapName, Context *onfinish);
   int delete_selfmanaged_snap(int pool, snapid_t snap, Context *onfinish);
 
-  int create_pool(string& name, Context *onfinish, uint64_t auid=0);
+  int create_pool(string& name, Context *onfinish, uint64_t auid=0,
+                 __u8 crush_rule=0);
   int delete_pool(int pool, Context *onfinish);
   int change_pool_auid(int pool, Context *onfinish, uint64_t auid);