summaryrefslogtreecommitdiff
path: root/src/osd/OSD.h
diff options
context:
space:
mode:
authorSamuel Just <sam.just@inktank.com>2013-03-21 11:19:45 -0700
committerSamuel Just <sam.just@inktank.com>2013-03-21 18:46:11 -0700
commit7bfaaf7a20252754bcf239aab6582c0ad3ea9763 (patch)
tree43e861e7552d14fdcab11465a4aa4d75a8ba2e64 /src/osd/OSD.h
parenta2dba959d29e62daf6ff9142a32f9071157afa14 (diff)
downloadceph-7bfaaf7a20252754bcf239aab6582c0ad3ea9763.tar.gz
OSD: notify mon prior to shutdown
Signed-off-by: Samuel Just <sam.just@inktank.com>
Diffstat (limited to 'src/osd/OSD.h')
-rw-r--r--src/osd/OSD.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/osd/OSD.h b/src/osd/OSD.h
index d41c9fec4d6..148b761f532 100644
--- a/src/osd/OSD.h
+++ b/src/osd/OSD.h
@@ -406,6 +406,24 @@ public:
void check_nearfull_warning(const osd_stat_t &stat);
bool check_failsafe_full();
+ // -- stopping --
+ Mutex is_stopping_lock;
+ Cond is_stopping_cond;
+ enum {
+ NOT_STOPPING,
+ PREPARING_TO_STOP,
+ STOPPING } state;
+ bool is_stopping() {
+ Mutex::Locker l(is_stopping_lock);
+ return state == STOPPING;
+ }
+ bool is_preparing_to_stop() {
+ Mutex::Locker l(is_stopping_lock);
+ return state == PREPARING_TO_STOP;
+ }
+ bool prepare_to_stop();
+ void got_stop_ack();
+
OSDService(OSD *osd);
};
class OSD : public Dispatcher,