X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Ftools%2Fcephfs%2FJournalScanner.h;fp=src%2Fceph%2Fsrc%2Ftools%2Fcephfs%2FJournalScanner.h;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=e6aaa05e11e24349b981f077e28084dddbcce5ec;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/tools/cephfs/JournalScanner.h b/src/ceph/src/tools/cephfs/JournalScanner.h deleted file mode 100644 index e6aaa05..0000000 --- a/src/ceph/src/tools/cephfs/JournalScanner.h +++ /dev/null @@ -1,125 +0,0 @@ -// -*- mode:c++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab -/* - * ceph - scalable distributed file system - * - * copyright (c) 2014 john spray - * - * this is free software; you can redistribute it and/or - * modify it under the terms of the gnu lesser general public - * license version 2.1, as published by the free software - * foundation. see file copying. - */ - -#ifndef JOURNAL_SCANNER_H -#define JOURNAL_SCANNER_H - -// For Journaler::Header, can't forward-declare nested classes -#include - -namespace librados { - class IoCtx; -} - -#include "JournalFilter.h" - -/** - * A simple sequential reader for metadata journals. Unlike - * the MDS Journaler class, this is written to detect, record, - * and read past corruptions and missing objects. It is also - * less efficient but more plainly written. - */ -class JournalScanner -{ - private: - librados::IoCtx &io; - - // Input constraints - const int rank; - JournalFilter const filter; - - void gap_advance(); - - public: - JournalScanner( - librados::IoCtx &io_, - int rank_, - JournalFilter const &filter_) : - io(io_), - rank(rank_), - filter(filter_), - pointer_present(false), - pointer_valid(false), - header_present(false), - header_valid(false), - header(NULL) {}; - - JournalScanner( - librados::IoCtx &io_, - int rank_) : - io(io_), - rank(rank_), - pointer_present(false), - pointer_valid(false), - header_present(false), - header_valid(false), - header(NULL) {}; - - ~JournalScanner(); - - int scan(bool const full=true); - int scan_pointer(); - int scan_header(); - int scan_events(); - void report(std::ostream &out) const; - - std::string obj_name(uint64_t offset) const; - std::string obj_name(inodeno_t ino, uint64_t offset) const; - - // The results of the scan - inodeno_t ino; // Corresponds to JournalPointer.front - class EventRecord { - public: - EventRecord() : log_event(NULL), raw_size(0) {} - EventRecord(LogEvent *le, uint32_t rs) : log_event(le), raw_size(rs) {} - LogEvent *log_event; - uint32_t raw_size; //< Size from start offset including all encoding overhead - }; - - class EventError { - public: - int r; - std::string description; - EventError(int r_, const std::string &desc_) - : r(r_), description(desc_) {} - }; - - typedef std::map EventMap; - typedef std::map ErrorMap; - typedef std::pair Range; - bool pointer_present; - bool pointer_valid; - bool header_present; - bool header_valid; - Journaler::Header *header; - - bool is_healthy() const; - bool is_readable() const; - std::vector objects_valid; - std::vector objects_missing; - std::vector ranges_invalid; - std::vector events_valid; - EventMap events; - - // For events present in ::events (i.e. scanned successfully), - // any subsequent errors handling them (e.g. replaying) - ErrorMap errors; - - - private: - // Forbid copy construction because I have ptr members - JournalScanner(const JournalScanner &rhs); -}; - -#endif // JOURNAL_SCANNER_H -