Re: Hang/soft lockup in d_invalidate with simultaneous calls

From: Al Viro
Date: Thu Jun 15 2017 - 06:51:05 EST


On Mon, Jun 12, 2017 at 04:00:45PM -0700, Khazhismel Kumykov wrote:
> On Fri, Jun 2, 2017 at 11:47 PM, Khazhismel Kumykov <khazhy@xxxxxxxxxx> wrote:
> > On Fri, Jun 2, 2017 at 11:20 PM, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:
> >> The thing is, unlike shrink_dcache_parent() we *can* bugger off as
> >> soon as we'd found no victims, nothing mounted and dentry itself
> >> is unhashed. We can't do anything in select_collect() (we would've
> >> broken shrink_dcache_parent() that way), but we can do unhashing
> >> in check_and_drop() in "really nothing to do" case and we can return
> >> from d_invalidate() after that. So how about this:
> > That does the trick.
>
> I'm not entirely familiar the process here, is the above change
> committed somewhere, should I propose a patch?

Sorry, got distracted by other stuff; I'll push that today.