]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- |
2 | // vim: ts=8 sw=2 smarttab | |
3 | /* | |
4 | * Ceph - scalable distributed file system | |
5 | * | |
6 | * Copyright (C) 2010 Greg Farnum <gregf@hq.newdream.net> | |
7 | * | |
8 | * This is free software; you can redistribute it and/or | |
9 | * modify it under the terms of the GNU Lesser General Public | |
10 | * License version 2.1, as published by the Free Software | |
11 | * Foundation. See file COPYING. | |
12 | */ | |
13 | ||
14 | #ifndef JOURNAL_RESETTER_H_ | |
15 | #define JOURNAL_RESETTER_H_ | |
16 | ||
17 | ||
18 | #include "MDSUtility.h" | |
19 | ||
20 | class Journaler; | |
21 | ||
22 | /** | |
23 | * This class lets you reset an mds journal for troubleshooting or whatever. | |
24 | * | |
25 | * To use, create a Resetter, call init(), and then call reset() with the name | |
26 | * of the file to dump to. | |
27 | */ | |
28 | class Resetter : public MDSUtility { | |
11fdf7f2 TL |
29 | private: |
30 | mds_role_t role; | |
31 | inodeno_t ino; | |
32 | bool is_mdlog; | |
33 | ||
7c673cae FG |
34 | protected: |
35 | int _write_reset_event(Journaler *journaler); | |
36 | ||
37 | public: | |
38 | Resetter() {} | |
11fdf7f2 | 39 | ~Resetter() {} |
7c673cae | 40 | |
11fdf7f2 | 41 | int init(mds_role_t role_, const std::string &type, bool hard); |
7c673cae FG |
42 | /** |
43 | * For use when no journal header/pointer was present: write one | |
44 | * out from scratch. | |
45 | */ | |
11fdf7f2 TL |
46 | int reset_hard(); |
47 | int reset(); | |
7c673cae FG |
48 | }; |
49 | ||
50 | #endif /* JOURNAL_RESETTER_H_ */ |