On Fri, 31 Dec 2004 18:38:30 -0500, you wrote: > OK, I installed your patch. > > % wine fds.exe > fstatvfs is available > bsize 4096 frsize 1104460315 blocks 3b0e00 bfree 2f5d6c bavail 2c5d79 > ret 1 gle 0 > sectpclust 1 bytpersect 1104460315 freeclust 1 totalclust 1 > sectpclust 1 bytpersect 41d4ba1b freeclust 1 totalclust 1 Thanks, the attached patch should fix your problem. Please apply as before and test. Rein.
--- wine/dlls/ntdll/file.c 2004-12-02 09:23:47.000000000 +0100 +++ mywine/dlls/ntdll/file.c 2005-01-01 13:21:24.000000000 +0100 @@ -1302,8 +1302,11 @@ NTSTATUS WINAPI NtQueryVolumeInformation else { FILE_FS_SIZE_INFORMATION *info = buffer; - struct statvfs stvfs; - +#ifndef HAVE_FSTATFS + struct statvfs stfs; +#else + struct statfs stfs; +#endif if (fstat( fd, &st ) < 0) { io->u.Status = FILE_GetNtStatus(); @@ -1314,13 +1317,20 @@ NTSTATUS WINAPI NtQueryVolumeInformation io->u.Status = STATUS_INVALID_DEVICE_REQUEST; break; } - if (fstatvfs( fd, &stvfs ) < 0) io->u.Status = FILE_GetNtStatus(); +#ifndef HAVE_FSTATFS + if (fstatvfs( fd, &stfs ) < 0) io->u.Status = FILE_GetNtStatus(); else { - info->TotalAllocationUnits.QuadPart = stvfs.f_blocks; - info->AvailableAllocationUnits.QuadPart = stvfs.f_bavail; + info->BytesPerSector = stfs.f_frsize; +#else + if (fstatfs( fd, &stfs ) < 0) io->u.Status = FILE_GetNtStatus(); + else + { + info->BytesPerSector = stfs.f_bsize; +#endif + info->TotalAllocationUnits.QuadPart = stfs.f_blocks; + info->AvailableAllocationUnits.QuadPart = stfs.f_bavail; info->SectorsPerAllocationUnit = 1; - info->BytesPerSector = stvfs.f_frsize; io->Information = sizeof(*info); io->u.Status = STATUS_SUCCESS; }