From: Elizabeth Figura <zfigura@codeweavers.com> --- dlls/ntdll/tests/directory.c | 8 ++++---- dlls/ntdll/unix/file.c | 10 ++++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/dlls/ntdll/tests/directory.c b/dlls/ntdll/tests/directory.c index 8ca34a24ab7..a9c4a447d50 100644 --- a/dlls/ntdll/tests/directory.c +++ b/dlls/ntdll/tests/directory.c @@ -1566,14 +1566,14 @@ static void test_info_classes(void) case FileFullDirectoryInformation: { const FILE_FULL_DIRECTORY_INFORMATION *info = (void *)buffer; - todo_wine ok( info->EaSize == 0xbeef, "got %#lx\n", info->EaSize ); + ok( info->EaSize == 0xbeef, "got %#lx\n", info->EaSize ); check_string( info->FileName, info->FileNameLength, L"file" ); break; } case FileBothDirectoryInformation: { const FILE_BOTH_DIRECTORY_INFORMATION *info = (void *)buffer; - todo_wine ok( info->EaSize == 0xbeef, "got %#lx\n", info->EaSize ); + ok( info->EaSize == 0xbeef, "got %#lx\n", info->EaSize ); check_string( info->ShortName, info->ShortNameLength, L"" ); check_string( info->FileName, info->FileNameLength, L"file" ); break; @@ -1581,7 +1581,7 @@ static void test_info_classes(void) case FileIdBothDirectoryInformation: { const FILE_ID_BOTH_DIRECTORY_INFORMATION *info = (void *)buffer; - todo_wine ok( info->EaSize == 0xbeef, "got %#lx\n", info->EaSize ); + ok( info->EaSize == 0xbeef, "got %#lx\n", info->EaSize ); ok( !memcmp( &info->FileId, &id_info.FileId, sizeof( info->FileId )), "expected ID %#I64x, got %#I64x\n", *(ULONGLONG *)&id_info.FileId, info->FileId.QuadPart); check_string( info->ShortName, info->ShortNameLength, L"" ); @@ -1591,7 +1591,7 @@ static void test_info_classes(void) case FileIdFullDirectoryInformation: { const FILE_ID_FULL_DIRECTORY_INFORMATION *info = (void *)buffer; - todo_wine ok( info->EaSize == 0xbeef, "got %#lx\n", info->EaSize ); + ok( info->EaSize == 0xbeef, "got %#lx\n", info->EaSize ); ok( !memcmp( &info->FileId, &id_info.FileId, sizeof( info->FileId )), "expected ID %#I64x, got %#I64x\n", *(ULONGLONG *)&id_info.FileId, info->FileId.QuadPart); check_string( info->FileName, info->FileNameLength, L"file" ); diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c index 90267736db7..3ed49a46274 100644 --- a/dlls/ntdll/unix/file.c +++ b/dlls/ntdll/unix/file.c @@ -2499,30 +2499,32 @@ static NTSTATUS get_dir_data_entry( struct dir_data *dir_data, void *info_ptr, I break; case FileFullDirectoryInformation: - info->full.EaSize = 0; /* FIXME */ + /* non-Extd classes return the reparse tag in EaSize if there is one */ + info->full.EaSize = reparse_tag; info->full.FileNameLength = name_len; break; case FileIdFullDirectoryInformation: - info->id_full.EaSize = 0; /* FIXME */ + info->id_full.EaSize = reparse_tag; info->id_full.FileNameLength = name_len; break; case FileBothDirectoryInformation: - info->both.EaSize = 0; /* FIXME */ + info->both.EaSize = reparse_tag; info->both.ShortNameLength = wcslen( names->short_name ) * sizeof(WCHAR); memcpy( info->both.ShortName, names->short_name, info->both.ShortNameLength ); info->both.FileNameLength = name_len; break; case FileIdBothDirectoryInformation: - info->id_both.EaSize = 0; /* FIXME */ + info->id_both.EaSize = reparse_tag; info->id_both.ShortNameLength = wcslen( names->short_name ) * sizeof(WCHAR); memcpy( info->id_both.ShortName, names->short_name, info->id_both.ShortNameLength ); info->id_both.FileNameLength = name_len; break; case FileIdExtdBothDirectoryInformation: + /* Extd classes do *not* return the reparse tag in EaSize */ info->extd_both.EaSize = 0; /* FIXME */ info->extd_both.ReparsePointTag = reparse_tag; info->extd_both.ShortNameLength = wcslen( names->short_name ) * sizeof(WCHAR); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10105