RHEL7.2: For a few simlinks on an xfs filesystem, getdents() is returning d_type = DT_REG, indicating a regular file, which differs from stat() return of st_mode = S_IFLNK, indicating a link

Solution Verified - Updated -

Issue

The following 'find' command should be showing files only but shows some symlinks

# find /usr/bin -mount -perm -0002 -type f -exec ls -l {} \;
lrwxrwxrwx 1 root root 4 Apr 10 16:04 /usr/bin/ping6 -> ping
...

We have noticed this in the /usr/bin and /usr/share/man/man? directories It is repeatable but only a few servers and only a few files out of thousands

strace analysis shows that these show up as DT_REG and not DT_LNK

      d_ino=113834, d_off=2025, d_reclen=32, d_name="ping6", d_type=DT_REG}   <<

Environment

  • Red Hat Enterprise Linux 7
    • kernels before kernel-3.10.0-354.el7
  • xfs
  • symlinks

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.