]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
osd: record last_purged_snaps_scrub in superblock
authorSage Weil <sage@redhat.com>
Wed, 26 Jun 2019 19:29:25 +0000 (14:29 -0500)
committerSage Weil <sage@redhat.com>
Tue, 2 Jul 2019 13:37:51 +0000 (08:37 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/OSD.cc
src/osd/osd_types.cc
src/osd/osd_types.h

index a2ebb42e303aa7d0b099a79e75712c2fa4f9cf11..0165ee183325e5a8400526c298950f8bce798675 100644 (file)
@@ -6622,6 +6622,14 @@ int OSD::_do_command(
       pg->queue_snap_retrim(snap);
       pg->unlock();
     }
+    ObjectStore::Transaction t;
+    superblock.last_purged_snaps_scrub = ceph_clock_now();
+    write_superblock(t);
+    int tr = store->queue_transaction(service.meta_ch, std::move(t), nullptr);
+    ceph_assert(tr == 0);
+    if (is_active()) {
+      send_beacon(ceph::coarse_mono_clock::now());
+    }
   } else {
     ss << "unrecognized command '" << prefix << "'";
     r = -EINVAL;
index 41279e0a3e40677c42da7da6a4808cf634540ecf..6e7135eae4a583193c114e5c426a7abc48b1d5f5 100644 (file)
@@ -5215,6 +5215,7 @@ void OSDSuperblock::encode(ceph::buffer::list &bl) const
   encode((epoch_t)0, bl);  // epoch_t last_epoch_marked_full
   encode((uint32_t)0, bl);  // map<int64_t,epoch_t> pool_last_epoch_marked_full
   encode(purged_snaps_last, bl);
+  encode(last_purged_snaps_scrub, bl);
   ENCODE_FINISH(bl);
 }
 
@@ -5250,6 +5251,7 @@ void OSDSuperblock::decode(ceph::buffer::list::const_iterator &bl)
   }
   if (struct_v >= 9) {
     decode(purged_snaps_last, bl);
+    decode(last_purged_snaps_scrub, bl);
   } else {
     purged_snaps_last = 0;
   }
@@ -5271,6 +5273,7 @@ void OSDSuperblock::dump(Formatter *f) const
   f->dump_int("clean_thru", clean_thru);
   f->dump_int("last_epoch_mounted", mounted);
   f->dump_unsigned("purged_snaps_last", purged_snaps_last);
+  f->dump_stream("last_purged_snaps_scrub") << last_purged_snaps_scrub;
 }
 
 void OSDSuperblock::generate_test_instances(list<OSDSuperblock*>& o)
index a1f321b95086b34b5a00d4faadba1bef0607f1ea..a9426df8ad1af69acf7c97b5cca294a54db180da 100644 (file)
@@ -4995,6 +4995,7 @@ public:
   epoch_t clean_thru = 0;  // epoch i was active and clean thru
 
   epoch_t purged_snaps_last = 0;
+  utime_t last_purged_snaps_scrub;
 
   void encode(ceph::buffer::list &bl) const;
   void decode(ceph::buffer::list::const_iterator &bl);