diff --git a/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp b/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp index 605e428a76..a29de3fe0e 100644 --- a/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp +++ b/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp @@ -958,6 +958,14 @@ status_t OverlayInode::OpenDir(void **cookie, bool attribute) { RecursiveLocker locker(fLock); + if (!attribute) { + if (!fHasStat) + _PopulateStat(); + + if (!S_ISDIR(fStat.st_mode)) + return B_NOT_A_DIRECTORY; + } + if (!attribute && !fHasDirents) _PopulateDirents(); else if (attribute && !fHasAttributeDirents)