From cb4a951f4ccf3a3cbe141fc51d916b70cdb8641a Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Thu, 10 Sep 2009 03:29:04 +0000 Subject: [PATCH] Also return B_NOT_A_DIRECTORY in write_overlay when appropriate. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33035 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../file_systems/layers/write_overlay/write_overlay.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) 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)