]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: change the unmanaged snap interface for better distinction of reply codes
authorGreg Farnum <gregf@hq.newdream.net>
Fri, 9 Apr 2010 23:40:18 +0000 (16:40 -0700)
committerSage Weil <sage@newdream.net>
Fri, 23 Apr 2010 21:42:48 +0000 (14:42 -0700)
and snapid numbers.

Of course, this now means that the snapid isn't actually passed
back to the client, but that is about to change.

src/mon/OSDMonitor.cc
src/osd/osd_types.h

index 9c03a4effbb933f03714cab0979f050cc3eb6670..ee4dbc8276a159576b637a403b0649c72a620a82 100644 (file)
@@ -1421,7 +1421,7 @@ bool OSDMonitor::prepare_pool_op (MPoolOp *m)
   }
   const pg_pool_t *p = osdmap.get_pg_pool(m->pool);
   pg_pool_t* pp = 0;
-  int64_t rc = 0;
+  int rc = 0;
   //if the pool isn't already in the update, add it
   if (!pending_inc.new_pools.count(m->pool))
     pending_inc.new_pools[m->pool] = *p;
@@ -1433,7 +1433,8 @@ bool OSDMonitor::prepare_pool_op (MPoolOp *m)
     dout(10) << "create snap in pool " << m->pool << " " << m->name << " seq " << pp->get_snap_epoch() << dendl;
     break;
   case POOL_OP_CREATE_UNMANAGED_SNAP:
-    rc = pp->add_unmanaged_snap();
+    __u64 snapid(0);
+    rc = pp->add_unmanaged_snap(snapid);
     break;
   case POOL_OP_DELETE_SNAP:
     pp->remove_snap(pp->snap_exists(m->name.c_str()));
index e7bb9fd28a1cfa034a6350e39040b2002e941711..4a50d9269762e177dffbcb56d3c2ec713763df68 100644 (file)
@@ -654,14 +654,14 @@ struct pg_pool_t {
     snaps[s].stamp = stamp;
   }
 #define EINVAL 22
-  __u64 add_unmanaged_snap() {
+  int add_unmanaged_snap(__u64& snapid) {
     if (removed_snaps.empty()) {
       if (!snaps.empty()) return -EINVAL; //already has pool snaps
       removed_snaps.insert(snapid_t(1));
       v.snap_seq = 1;
     }
-    v.snap_seq = v.snap_seq + 1;
-    return v.snap_seq;
+    snapid = v.snap_seq = v.snap_seq + 1;
+    return 0;
   }
   void remove_snap(snapid_t s) {
     assert(snaps.count(s));