]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/PGLog: fix sanity check against **complete-to** iter
authorsongweibin <song.weibin@zte.com.cn>
Tue, 24 Apr 2018 08:30:01 +0000 (16:30 +0800)
committersongweibin <song.weibin@zte.com.cn>
Tue, 24 Apr 2018 08:30:01 +0000 (16:30 +0800)
Signed-off-by: songweibin <song.weibin@zte.com.cn>
src/osd/PGLog.h

index e3035bc0d75aeaf52c927cda75ea634a76f587e3..2ca41cba6f0c7e80b78ceff6128c1e5b01b4d0a2 100644 (file)
@@ -772,21 +772,21 @@ public:
 
   void reset_complete_to(pg_info_t *info) {
     log.complete_to = log.log.begin();
+    assert(log.complete_to != log.log.end());
     auto oldest_need = missing.get_oldest_need();
     if (oldest_need != eversion_t()) {
       while (log.complete_to->version < oldest_need) {
-        assert(log.complete_to != log.log.end());
         ++log.complete_to;
+        assert(log.complete_to != log.log.end());
       }
     }
-    assert(log.complete_to != log.log.end());
+    if (!info)
+      return;
     if (log.complete_to == log.log.begin()) {
-      if (info)
-       info->last_complete = eversion_t();
+      info->last_complete = eversion_t();
     } else {
       --log.complete_to;
-      if (info)
-       info->last_complete = log.complete_to->version;
+      info->last_complete = log.complete_to->version;
       ++log.complete_to;
     }
   }