[Wine]Cluster size not supported
Rein Klazes
wijn at wanadoo.nl
Sat Jan 1 08:03:01 CST 2005
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.
-------------- next part --------------
--- 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;
}
More information about the wine-users
mailing list