[pacman-dev] [PATCH] Use f_bavail for diskspace calculations
From: Martin Kühne <mysatyre@gmail.com> This should make pacman's behavior consistent with GNU coreutils df, as well as follow advice from affected filesystems' devs as well as `man statvfs`. This fixes FS#37402 Signed-off-by: Martin Kühne <mysatyre@gmail.com> --- lib/libalpm/diskspace.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/libalpm/diskspace.c b/lib/libalpm/diskspace.c index da4ad56..55343c1 100644 --- a/lib/libalpm/diskspace.c +++ b/lib/libalpm/diskspace.c @@ -348,11 +348,11 @@ static int check_mountpoint(alpm_handle_t *handle, alpm_mountpoint_t *mp) _alpm_log(handle, ALPM_LOG_DEBUG, "partition %s, needed %jd, cushion %ju, free %ju\n", mp->mount_dir, (intmax_t)mp->max_blocks_needed, - (uintmax_t)cushion, (uintmax_t)mp->fsp.f_bfree); - if(needed >= 0 && (fsblkcnt_t)needed > mp->fsp.f_bfree) { + (uintmax_t)cushion, (uintmax_t)mp->fsp.f_bavail); + if(needed >= 0 && (fsblkcnt_t)needed > mp->fsp.f_bavail) { _alpm_log(handle, ALPM_LOG_ERROR, _("Partition %s too full: %jd blocks needed, %ju blocks free\n"), - mp->mount_dir, (intmax_t)needed, (uintmax_t)mp->fsp.f_bfree); + mp->mount_dir, (intmax_t)needed, (uintmax_t)mp->fsp.f_bavail); return 1; } return 0; -- 2.10.0
On 12/10/16 02:36, Martin Kühne wrote:
From: Martin Kühne <mysatyre@gmail.com>
This should make pacman's behavior consistent with GNU coreutils df, as well as follow advice from affected filesystems' devs as well as `man statvfs`.
This fixes FS#37402
Signed-off-by: Martin Kühne <mysatyre@gmail.com>
Thanks for sorting this out. I still find it weird some values of the struct may be meaningless depending on the filesystem... A
participants (2)
-
Allan McRae
-
Martin Kühne