SUA statvfs() call on Windows Server 2008 R2 may return error

Applies to: Windows Server 2008 R2 DatacenterWindows Server 2008 R2 EnterpriseWindows Server 2008 R2 Service Pack 1

Symptoms


The statvfs() call in SUA may fail with the following error on a Windows 7 or Windows Server 2008 R2 based system:


statvfs(): errno = 88 (Value too large to be stored in data type)

Cause


This problem occurs due to the allocation of Master File Table zones on the NTFS file system less than 100GB.

Resolution


This problem may be fixed by increasing the size of the first Master File Table zone. This can be done using on the following methods:

Using the FSUTIL command in Windows - fsutil behavior set MftZone 4
Change the value of HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem\NtfsMftZoneReservation to 4 using Registry Editor

In some cases, defragmenting or reformatting the file system may also resolve this problem.

More Information


In a NTFS volume with a large number of files, creation of a second MFT zone is triggered when the first MFT zone is filled up. When statvfs() executes, it compares the zone end and start  for all MFS zones. If zone 2 start and end are both smaller than zone 1  start and end respectively, it generates a negative difference and results in statvfs() failure with error code 88.