6815768: File.getxxxSpace() methods fail for very large file systems under 32bit Java

Reviewed-by: ohair
This commit is contained in:
Alan Bateman 2010-02-27 19:26:59 +00:00
parent 32d811b1f7
commit ab0eb81f5b

View file

@ -414,9 +414,9 @@ Java_java_io_UnixFileSystem_getSpace(JNIEnv *env, jobject this,
jlong rv = 0L; jlong rv = 0L;
WITH_FIELD_PLATFORM_STRING(env, file, ids.path, path) { WITH_FIELD_PLATFORM_STRING(env, file, ids.path, path) {
struct statvfs fsstat; struct statvfs64 fsstat;
memset(&fsstat, 0, sizeof(struct statvfs)); memset(&fsstat, 0, sizeof(fsstat));
if (statvfs(path, &fsstat) == 0) { if (statvfs64(path, &fsstat) == 0) {
switch(t) { switch(t) {
case java_io_FileSystem_SPACE_TOTAL: case java_io_FileSystem_SPACE_TOTAL:
rv = jlong_mul(long_to_jlong(fsstat.f_frsize), rv = jlong_mul(long_to_jlong(fsstat.f_frsize),