From: Mykola Golub Date: Mon, 30 May 2016 13:24:24 +0000 (+0300) Subject: rbd-mirror: return ECANCELED when ImageReplayer start is canceled X-Git-Tag: v10.2.2~17^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c8a3e759298c3a2adfa67d932178d284619d460e;p=ceph.git rbd-mirror: return ECANCELED when ImageReplayer start is canceled Signed-off-by: Mykola Golub (cherry picked from commit f581dbcb2eca108ce9440629b8f00f3229c07b95) --- diff --git a/src/test/rbd_mirror/test_ImageReplayer.cc b/src/test/rbd_mirror/test_ImageReplayer.cc index 58ed3654920d..6aec1dd016d8 100644 --- a/src/test/rbd_mirror/test_ImageReplayer.cc +++ b/src/test/rbd_mirror/test_ImageReplayer.cc @@ -395,8 +395,8 @@ TEST_F(TestImageReplayer, StartInterrupted) m_replayer->stop(&stop_cond); int r = start_cond.wait(); printf("start returned %d\n", r); - // TODO: improve the test to avoid this race // TODO: improve the test to avoid this race - ASSERT_TRUE(r == -EINTR || r == 0); + // TODO: improve the test to avoid this race + ASSERT_TRUE(r == -ECANCELED || r == 0); ASSERT_EQ(0, stop_cond.wait()); } diff --git a/src/tools/rbd_mirror/ImageReplayer.cc b/src/tools/rbd_mirror/ImageReplayer.cc index 5db2f43c660e..5c4920c10ddc 100644 --- a/src/tools/rbd_mirror/ImageReplayer.cc +++ b/src/tools/rbd_mirror/ImageReplayer.cc @@ -513,10 +513,10 @@ void ImageReplayer::on_start_fail(int r, const std::string &desc) { Mutex::Locker locker(m_lock); m_state = STATE_STOPPING; - if (r < 0 && r != -EINTR) { + if (r < 0 && r != -ECANCELED) { derr << "start failed: " << cpp_strerror(r) << dendl; } else { - dout(20) << "start interrupted" << dendl; + dout(20) << "start canceled" << dendl; } std::swap(m_on_start_finish, on_start_finish); } @@ -537,7 +537,7 @@ bool ImageReplayer::on_start_interrupted() return false; } - on_start_fail(-EINTR); + on_start_fail(-ECANCELED); return true; }