John Garry [john.garry@xxxxxxxxxx] wrote:
On 13/03/2018 20:10, Sukadev Bhattiprolu wrote:
Hi John,
I have an xfs file system which seems to have d_type == DT_UNKNOWN for all
entries in 'tools/perf/pmu-events/arch/power8'! readdir(3) says ->d_type
may not be supported by all file systems.
Not relying on ->d_type seems to fix it:
Hi Sukadev,
Thanks for debugging this. Jiri Olsa (cc'ed) warned me on this, so I did add
the check for d_type == DT_UNKNOWN.
But, if all files have d_type == DT_UNKNOWN, you're code would from visual
observation look to be same as mine (apart from check for '.' or '..'
filename, which I would say is already covered by stat() and S_ISDIR()). Or
is d_type value just unreliable?
In the current code and with DT_UNKNOWN, is_leaf_dir() returns false when
it sees the "." or ".." entries right? In the new code, we skip those and
return false only if we find some other directory.
Thanks,
Sukadev