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.
}
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;
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()));
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));