diff options
author | Samuel Just <sam.just@inktank.com> | 2013-03-19 09:55:19 -0700 |
---|---|---|
committer | Samuel Just <sam.just@inktank.com> | 2013-03-21 18:37:34 -0700 |
commit | 505bebbb3c5e879b375c3b55da3da8195cccfb18 (patch) | |
tree | f3c8841fb9d3ec845b87d03fd913d29628ed2ead /src/osd/OSD.h | |
parent | 9d076a0edb04e434df2bdb4566e04507a452c087 (diff) | |
download | ceph-505bebbb3c5e879b375c3b55da3da8195cccfb18.tar.gz |
OSD: check for is_stopping after locking osd_lock or heartbeat_lock
Signed-off-by: Samuel Just <sam.just@inktank.com>
Diffstat (limited to 'src/osd/OSD.h')
-rw-r--r-- | src/osd/OSD.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/osd/OSD.h b/src/osd/OSD.h index 0a5386acacd..d41c9fec4d6 100644 --- a/src/osd/OSD.h +++ b/src/osd/OSD.h @@ -1099,6 +1099,10 @@ protected: } void _process(Command *c) { osd->osd_lock.Lock(); + if (osd->is_stopping()) { + delete c; + return; + } osd->do_command(c->con, c->tid, c->cmd, c->indata); osd->osd_lock.Unlock(); delete c; @@ -1353,6 +1357,10 @@ protected: } void _process(MOSDRepScrub *msg) { osd->osd_lock.Lock(); + if (osd->is_stopping()) { + osd->osd_lock.Unlock(); + return; + } if (osd->_have_pg(msg->pgid)) { PG *pg = osd->_lookup_lock_pg(msg->pgid); osd->osd_lock.Unlock(); |