Kernel/LibC: Fix dirent functions

dirent functions used to fail if a directory contained more than 128
files :D
This commit is contained in:
2025-01-28 17:15:11 +02:00
parent cbe3f2a4ac
commit 7c57d736c6
2 changed files with 30 additions and 7 deletions

View File

@@ -330,8 +330,11 @@ namespace Kernel
return BAN::Error::from_errno(EACCES);
for (;;)
{
auto ret = open_file.inode()->list_next_inodes(open_file.offset()++, list, list_len);
if (ret.is_error() && ret.error().get_error_code() == ENODATA)
auto ret = open_file.inode()->list_next_inodes(open_file.offset(), list, list_len);
if (ret.is_error() && ret.error().get_error_code() != ENODATA)
return ret;
open_file.offset()++;
if (ret.is_error())
continue;
return ret;
}