diff options
author | Samuel Just <sam.just@inktank.com> | 2013-02-21 15:31:36 -0800 |
---|---|---|
committer | Samuel Just <sam.just@inktank.com> | 2013-03-20 15:17:22 -0700 |
commit | ac914834ba4fb0e4770f63c60713be7a48aa3fa1 (patch) | |
tree | 9c3c2731621b10b0ae16858cb4b45eef2558305c | |
parent | 7f39704b0903fb11e3f1e102599bf0c540f93623 (diff) | |
download | ceph-ac914834ba4fb0e4770f63c60713be7a48aa3fa1.tar.gz |
PG::proc_replica_log: adjust oinfo.last_complete based on omissing
Otherwise, search_for_missing may neglect to check the missing
set for some objects assuming that if the need version is
prior to last_complete, the replica must have it.
Fixes: #4994
Signed-off-by: Samuel Just <sam.just@inktank.com>
(cherry picked from commit ce7ffc34408bf32c66dc07e6f42d54b7ec489d41)
-rw-r--r-- | src/osd/PG.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 2f1d77cb602..27080b5ac69 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -270,6 +270,8 @@ void PG::proc_replica_log(ObjectStore::Transaction& t, oinfo.last_update = lu; if (lu < oinfo.last_complete) oinfo.last_complete = lu; + if (omissing.have_missing()) + oinfo.last_complete = missing.missing[missing.rmissing.begin()->second].need; } peer_info[from] = oinfo; |