From: Ivan Delalande Subject: Warning: empty root dentry name after lazy mount removal Date: Fri, 15 May 2015 20:58:20 +0200 Message-ID: <20150515185820.GQ20468@ycc.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: linux-fsdevel@vger.kernel.org To: "Eric W. Biederman" , Al Viro Return-path: Received: from mail-wi0-f177.google.com ([209.85.212.177]:35324 "EHLO mail-wi0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752124AbbETCyD (ORCPT ); Tue, 19 May 2015 22:54:03 -0400 Received: by wicmx19 with SMTP id mx19so138760693wic.0 for ; Tue, 19 May 2015 19:54:01 -0700 (PDT) Content-Disposition: inline Sender: linux-fsdevel-owner@vger.kernel.org List-ID: Hi, Since commit 8ed936b "vfs: Lazily remove mounts on unlinked files and directories.", I=E2=80=99m seeing a new warning from prepend_path() at fs/dcache.c:2937 saying: Root dentry has weird name <> Our particular occurrence happens because we are using an older version of iproute (< v3.10, commit bcb9d40, but this also works with the maste= r and just reverting that commit), and the following scenario: term1# ip netns add foo term1# ip netns exec foo sh term1# ls -l /proc/self/fd/4 lr-x------ 1 root root 64 May 15 11:02 /proc/self/fd/4 -> /var/run/net= ns/foo term2# ip netns del foo term1# ls -l /proc/self/fd/4 [dmesg] WARNING: [...] [dmesg] Root dentry has weird name <> lr-x------ 1 root root 64 May 15 11:04 /proc/self/fd/4 -> / Relevant moutinfo chunks before the `ip netns del`: 29 0 8:2 / / rw,relatime - ext4 /dev/sda2 rw,data=3Dordered 82 29 0:3 / /var/run/netns/foo rw,nosuid,nodev,noexec,relatime - proc = proc rw What I could observe is that after the namespace deletion, that mount 8= 2 get isolated (mnt->parent =3D mnt), and so prepend_path considers it as the global root. But the name of that dentry has d_name.len =3D=3D 0, w= hich triggers the WARN in that function. I=E2=80=99m still struggling to understand all the relations between th= e VFS structures and at which point they get initialized precisely. Do you have any idea how to fix this problem? Thanks, --=20 Ivan "Colona" Delalande -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel= " in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html