In calculating the f_bavail field, don't take 32 bit quantities and
multiply them by 90 (to be divided by 100) and expect them to be sane for very large values (I was getting a negative 'avail' count).
This commit is contained in:
parent
2d7d2e019a
commit
949982f2a4
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue