mirror of
https://github.com/opnsense/src.git
synced 2026-03-21 18:30:08 -04:00
This fixes PR943. ffs/ffs_vfsops.c: ffs_statfs() multiplied by (100 - minfree) as part of calculating the minfree percentage (complemented in 100%), so with the standard minfree of 8, it was broken for file systems of size >= 1TB/92 = 11GB. Use the standard freespace() macro instead. This also fixes a rounding bug (the "Avail" count was sometimes 1 too small). ffs/* (not fixed): The freespace() macro multiplies by minfree, so with the standard minfree of 8, it is broken for file systems of size >= 1TB/8 = 128GB. This bug is more serious since it affects block allocation. ffs/ffs_alloc.c (not fixed): Ordinary users are sometimes allowed to allocate 1 (partial) block too many so that the "Avail" count goes negative. E.g., if there is 1 fragment available and the file is fairly large, one more full block is allocated. df/df.c: ufs_df() used/uses essentially the same code as ffs_statfs(), so it had/has the same bugs. ufs_df() gratuitously replaced "Avail" counts of < 0 by 0, so it gave different results for non-mounted file systems in this case. |
||
|---|---|---|
| .. | ||
| cat | ||
| chflags | ||
| chmod | ||
| cp | ||
| csh | ||
| date | ||
| dd | ||
| df | ||
| domainname | ||
| echo | ||
| ed | ||
| expr | ||
| hostname | ||
| kill | ||
| ln | ||
| ls | ||
| mkdir | ||
| mv | ||
| pax | ||
| ps | ||
| pwd | ||
| rcp | ||
| rm | ||
| rmail | ||
| rmdir | ||
| sh | ||
| sleep | ||
| stty | ||
| sync | ||
| test | ||
| Makefile | ||
| Makefile.inc | ||