diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c index 107ad979190e..0228776eac90 100644 --- a/sys/ufs/ffs/ffs_vfsops.c +++ b/sys/ufs/ffs/ffs_vfsops.c @@ -1,4 +1,4 @@ -/* $NetBSD: ffs_vfsops.c,v 1.30 1997/07/22 14:36:31 fvdl Exp $ */ +/* $NetBSD: ffs_vfsops.c,v 1.31 1997/10/16 18:29:11 mjacob Exp $ */ /* * Copyright (c) 1989, 1991, 1993, 1994 @@ -678,8 +678,9 @@ ffs_statfs(mp, sbp, p) sbp->f_blocks = fs->fs_dsize; sbp->f_bfree = fs->fs_cstotal.cs_nbfree * fs->fs_frag + fs->fs_cstotal.cs_nffree; - sbp->f_bavail = (fs->fs_dsize * (100 - fs->fs_minfree) / 100) - - (fs->fs_dsize - sbp->f_bfree); + sbp->f_bavail = (long) (((u_int64_t) fs->fs_dsize * (u_int64_t) + (100 - fs->fs_minfree) / (u_int64_t) 100) - + (u_int64_t) (fs->fs_dsize - sbp->f_bfree)); sbp->f_files = fs->fs_ncg * fs->fs_ipg - ROOTINO; sbp->f_ffree = fs->fs_cstotal.cs_nifree; if (sbp != &mp->mnt_stat) { diff --git a/sys/ufs/lfs/lfs_vfsops.c b/sys/ufs/lfs/lfs_vfsops.c index ab0331dd02fe..16380819581c 100644 --- a/sys/ufs/lfs/lfs_vfsops.c +++ b/sys/ufs/lfs/lfs_vfsops.c @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_vfsops.c,v 1.13 1997/06/11 10:10:04 bouyer Exp $ */ +/* $NetBSD: lfs_vfsops.c,v 1.14 1997/10/16 18:29:20 mjacob Exp $ */ /* * Copyright (c) 1989, 1991, 1993, 1994 @@ -417,8 +417,9 @@ lfs_statfs(mp, sbp, p) sbp->f_iosize = fs->lfs_bsize; sbp->f_blocks = dbtofsb(fs,fs->lfs_dsize); sbp->f_bfree = dbtofsb(fs, fs->lfs_bfree); - sbp->f_bavail = (fs->lfs_dsize * (100 - fs->lfs_minfree) / 100) - - (fs->lfs_dsize - fs->lfs_bfree); + sbp->f_bavail = (long) (((u_int64_t) fs->lfs_dsize * (u_int64_t) + (100 - fs->lfs_minfree) / (u_int64_t) 100) - + (u_int64_t) (fs->lfs_dsize - sbp->f_bfree)); sbp->f_bavail = dbtofsb(fs, sbp->f_bavail); sbp->f_files = fs->lfs_nfiles; sbp->f_ffree = sbp->f_bfree * INOPB(fs);