[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190326013053.GA21198@kroah.com>
Date: Tue, 26 Mar 2019 10:30:53 +0900
From: Greg KH <gregkh@...uxfoundation.org>
To: Arnd Bergmann <arnd@...db.de>
Cc: stable@...r.kernel.org, Alexander Viro <viro@...iv.linux.org.uk>,
Andrew Morton <akpm@...ux-foundation.org>,
Roman Gushchin <guro@...com>, Waiman Long <longman@...hat.com>,
linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [BACKPORT 4.4.y 20/25] Hang/soft lockup in d_invalidate with
simultaneous calls
On Fri, Mar 22, 2019 at 04:44:11PM +0100, Arnd Bergmann wrote:
> From: Al Viro <viro@...IV.linux.org.uk>
>
> It's not hard to trigger a bunch of d_invalidate() on the same
> dentry in parallel. They end up fighting each other - any
> dentry picked for removal by one will be skipped by the rest
> and we'll go for the next iteration through the entire
> subtree, even if everything is being skipped. Morevoer, we
> immediately go back to scanning the subtree. The only thing
> we really need is to dissolve all mounts in the subtree and
> as soon as we've nothing left to do, we can just unhash the
> dentry and bugger off.
>
> Signed-off-by: Al Viro <viro@...iv.linux.org.uk>
> (cherry picked from commit 81be24d263dbeddaba35827036d6f6787a59c2c3)
> Signed-off-by: Arnd Bergmann <arnd@...db.de>
> ---
> fs/dcache.c | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
Also added to 4.9.y
Powered by blists - more mailing lists