After the behavior of '%pD' is changed to print the full path of file, the log printing can be simplified. The error case is well handled in d_path_unsafe(), the error string would be copied in '%pD' buffer, no need to additionally handle IS_ERR(). Cc: "Theodore Ts'o" <tytso@xxxxxxx> Cc: Andreas Dilger <adilger.kernel@xxxxxxxxx> Cc: linux-ext4@xxxxxxxxxxxxxxx Cc: linux-kernel@xxxxxxxxxxxxxxx Signed-off-by: Jia He <justin.he@xxxxxxx> --- fs/ext4/super.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/fs/ext4/super.c b/fs/ext4/super.c index dfa09a277b56..89ad5a334b80 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -803,31 +803,27 @@ void __ext4_error_file(struct file *file, const char *function, va_list args; struct va_format vaf; struct inode *inode = file_inode(file); - char pathname[80], *path; if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb)))) return; trace_ext4_error(inode->i_sb, function, line); if (ext4_error_ratelimit(inode->i_sb)) { - path = file_path(file, pathname, sizeof(pathname)); - if (IS_ERR(path)) - path = "(unknown)"; va_start(args, fmt); vaf.fmt = fmt; vaf.va = &args; if (block) printk(KERN_CRIT "EXT4-fs error (device %s): %s:%d: inode #%lu: " - "block %llu: comm %s: path %s: %pV\n", + "block %llu: comm %s: path %pD: %pV\n", inode->i_sb->s_id, function, line, inode->i_ino, - block, current->comm, path, &vaf); + block, current->comm, file, &vaf); else printk(KERN_CRIT "EXT4-fs error (device %s): %s:%d: inode #%lu: " - "comm %s: path %s: %pV\n", + "comm %s: path %pD: %pV\n", inode->i_sb->s_id, function, line, inode->i_ino, - current->comm, path, &vaf); + current->comm, file, &vaf); va_end(args); } ext4_handle_error(inode->i_sb, false, EFSCORRUPTED, inode->i_ino, block, -- 2.17.1