]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
journaler: don't block when we adjust back write_pos
authorSage Weil <sage@newdream.net>
Wed, 30 Mar 2011 23:46:04 +0000 (16:46 -0700)
committerSage Weil <sage@newdream.net>
Wed, 30 Mar 2011 23:46:04 +0000 (16:46 -0700)
is_readable() may need to adjust the write_pos backward, but will return
false.  If we are at the end we still need to wake up any waiters so they
know about it.

Signed-off-by: Sage Weil <sage@newdream.net>
src/osdc/Journaler.cc

index 4d96cb86b3ed4e69c5308a23c5ba3230543e7e92..486fb8155c11a089276b34e8456ae8237ad016bc 100644 (file)
@@ -660,7 +660,7 @@ void Journaler::_finish_read(int r)
           << ", read pointers " << read_pos << "/" << received_pos << "/" << requested_pos
           << dendl;
   
-  if (is_readable()) { // NOTE: this check may read more
+  if (is_readable() || read_pos == write_pos) { // NOTE: this check may read more
     // readable!
     dout(10) << "_finish_read now readable" << dendl;
     if (on_readable) {