Re: [PATCH v2 13/17] locks: remove i_have_this_lease check from __break_lease

Jeff Layton
2014-09-04T18:03:06Z

On Thu, 4 Sep 2014 10:51:32 -0700
Christoph Hellwig <hch@infradead.org> wrote:

> On Thu, Sep 04, 2014 at 08:38:39AM -0400, Jeff Layton wrote:
> > I think that the intent of this code was to ensure that a process won't
> > deadlock if it has one fd open with a lease on it and then breaks that
> > lease by opening another fd. In that case it'll treat the __break_lease
> > call as if it were non-blocking.
> >
> > This seems wrong -- the process could (for instance) be multithreaded
> > and managing different fds via different threads. I also don't see any
> > mention of this limitation in the (somewhat sketchy) documentation.
> >
> > Remove the check and the non-blocking behavior when i_have_this_lease
> > is true.
>
> This looks reasonable to me, but I'm always very worried about changing
> userspace exposed behavior..
>

Yeah, me too, but I think the behavior in this case is just plain
wrong. It's really hard to understand how anyone would rely on this to
avoid deadlocking, but you never know...

I want to phase this out, but I'm certainly open to doing this in a
smoother fashion if anyone has suggestions on how to do so.

Thanks,
--
Jeff Layton <jlayton@primarydata.com>