[RHEL7,COMMIT] fs/dcache: show fs_type in warning about unnamed root entry

Submitted by Konstantin Khorenko on May 30, 2018, 11:46 a.m.

Details

Message ID 201805301146.w4UBklJ5009812@finist_ce7.work
State New
Series "fs/dcache: show fs_type in warning about unnamed root entry"
Headers show

Commit Message

Konstantin Khorenko May 30, 2018, 11:46 a.m.
The commit is pushed to "branch-rh7-3.10.0-693.21.1.vz7.50.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-693.21.1.vz7.50.3
------>
commit 1aa64b1c84aee38417efc9ae3b7f777da9d55dfd
Author: Pavel Tikhomirov <ptikhomirov@virtuozzo.com>
Date:   Wed May 30 14:46:47 2018 +0300

    fs/dcache: show fs_type in warning about unnamed root entry
    
    We have a noizy warning from customer:
    
     Call Trace:
      [<ffffffff816a02f8>] dump_stack+0x19/0x1b
      [<ffffffff81088be8>] __warn+0xd8/0x100
      [<ffffffff81088c6f>] warn_slowpath_fmt+0x5f/0x80
      [<ffffffff8123472f>] prepend_path+0x25f/0x320
      [<ffffffff812348d5>] d_path+0xe5/0x150
      [<ffffffff8128f04d>] proc_pid_readlink+0x9d/0x100
      [<ffffffff8122121b>] SyS_readlinkat+0x9b/0x130
      [<ffffffff812212cb>] SyS_readlink+0x1b/0x20
      [<ffffffff816b1649>] system_call_fastpath+0x16/0x1b
     ---[ end trace c117274d77e2a060 ]---
    
    Knowing which fs is involved behind /proc/pid/smth will help much.
    
    https://jira.sw.ru/browse/PSBM-78310
    
    Signed-off-by: Pavel Tikhomirov <ptikhomirov@virtuozzo.com>
---
 fs/dcache.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Patch hide | download patch | download mbox

diff --git a/fs/dcache.c b/fs/dcache.c
index 2cb018a05078..8ec9b2a7cbde 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -3010,9 +3010,10 @@  static int prepend_path(const struct path *path,
 			if (IS_ROOT(dentry) &&
 			   (dentry->d_name.len != 1 ||
 			    dentry->d_name.name[0] != '/')) {
-				WARN(1, "Root dentry has weird name <%.*s>\n",
+				WARN(1, "Root dentry has weird name <%.*s> fs=%s\n",
 				     (int) dentry->d_name.len,
-				     dentry->d_name.name);
+				     dentry->d_name.name,
+				     dentry->d_sb->s_type->name);
 			}
 			if (!error)
 				error = is_mounted(vfsmnt) ? 1 : 2;