Okay, I pushed a patch that reworks this. If the op is interrupted, we flag the request struct but leave it registered, so we can still process the reply. That processing does the caps updates, but skips the dcache changes, since we won't hold i_mutex anymore. It also clears the directory's I_COMPLETE so that the cached readdir state is invalidated.
On Fri, 22 Jan 2010, Yehuda Sadeh Weinraub wrote: > On Fri, Jan 22, 2010 at 3:07 PM, Sage Weil <s...@newdream.net> wrote: > > > > Are there other places that should be handling ERESTARTSYS? > > Anywhere we have interruptible wait are the obvious places. There are > a few places of those. I guess that we may get that when calling other > kernel internal functions. I guess there are other places where we can > hit it (e.g., call to kernel_recvmsg). I left this out... AFAICS it gets translated to EINTR as long as there is a signal pending (which in this case there is). Among other things, this means control-c will work again on requests blocked by a down MDS. sage ------------------------------------------------------------------------------ The Planet: dedicated and managed hosting, cloud storage, colocation Stay online with enterprise data centers and the best network in the business Choose flexible plans and management services without long-term contracts Personal 24x7 support from experience hosting pros just a phone call away. http://p.sf.net/sfu/theplanet-com _______________________________________________ Ceph-devel mailing list Ceph-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ceph-devel