]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ReplicatedPG: do not meaninglessly fill in the reqid on make_writeable() cloning
authorGreg Farnum <greg@inktank.com>
Fri, 30 Aug 2013 23:33:31 +0000 (16:33 -0700)
committerGreg Farnum <greg@inktank.com>
Tue, 10 Sep 2013 00:21:32 +0000 (17:21 -0700)
This reqid is used to fill in a map that is used for giving clients
the correct version on replayed ops, unless the reqid is blank (in
which case it doesn't go into the map). Indirect clones are not ops
that the client wants to observe and the version is incorrect right now,
so don't fill it in.
Note that this should not have actually caused any buggy behavior, because
the map would have simply been overwritten by the real requested event
a short time later (while still protected by locks and things). But it's
very confusing.

Signed-off-by: Greg Farnum <greg@inktank.com>
src/osd/ReplicatedPG.cc

index 2c96180b13a93cb48d69f553503644a5a3989b25..a4c725a90a80fc5c479e2da263c092d08148a472 100644 (file)
@@ -3772,7 +3772,7 @@ void ReplicatedPG::make_writeable(OpContext *ctx)
     ctx->log.push_back(pg_log_entry_t(pg_log_entry_t::CLONE, coid, ctx->at_version,
                                      ctx->obs->oi.version,
                                      ctx->obs->oi.user_version,
-                                     ctx->reqid, ctx->new_obs.oi.mtime));
+                                     osd_reqid_t(), ctx->new_obs.oi.mtime));
     ::encode(snaps, ctx->log.back().snaps);
 
     ctx->at_version.version++;