From: Sage Weil Date: Wed, 16 Apr 2008 16:51:32 +0000 (-0700) Subject: client: lazy should wait on correct waitlist X-Git-Tag: v0.2~204^2~9 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=934cf887aa898d800a214e590274fd266eb6e9e1;p=ceph.git client: lazy should wait on correct waitlist --- diff --git a/src/client/Client.cc b/src/client/Client.cc index 07cab2c654949..8cf6df0a6717b 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -3056,7 +3056,10 @@ int Client::_read(Fh *f, off_t offset, off_t size, bufferlist *bl) // wait for lazy cap if ((in->file_caps() & CEPH_CAP_LAZYIO) == 0) { dout(7) << " don't have lazy cap, waiting" << dendl; - goto wait; + Cond cond; + in->waitfor_lazy.push_back(&cond); + cond.Wait(client_lock); + continue; } } else { // wait for RD cap?