[git commit] df: use f_frsize instead of f_bsize for correct sizes

Denys Vlasenko vda.linux at googlemail.com
Fri Jun 24 02:12:01 UTC 2016


commit: https://git.busybox.net/busybox/commit/?id=8f4faa1e3db91fc7b50d633e6f9b2f04bf978bb2
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

Use the correct field f_frsize instead of f_bsize.

The statfs f_bsize is the "Optimal transfer block size" while the
f_frsize is the "Fragment size (since Linux 2.6)". On some FUSE
filesystems those may differ.

Fixes bug 9046

URL: https://bugs.busybox.net/show_bug.cgi?id=9046

Signed-off-by: Natanael Copa <ncopa at alpinelinux.org>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 coreutils/df.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/coreutils/df.c b/coreutils/df.c
index d79c11a..06b2920 100644
--- a/coreutils/df.c
+++ b/coreutils/df.c
@@ -188,7 +188,7 @@ int df_main(int argc UNUSED_PARAM, char **argv)
 			if (opt & OPT_INODE) {
 				s.f_blocks = s.f_files;
 				s.f_bavail = s.f_bfree = s.f_ffree;
-				s.f_bsize = 1;
+				s.f_frsize = 1;
 
 				if (df_disp_hr)
 					df_disp_hr = 1;
@@ -246,26 +246,26 @@ int df_main(int argc UNUSED_PARAM, char **argv)
 
 #if ENABLE_FEATURE_HUMAN_READABLE
 			printf(" %9s ",
-				/* f_blocks x f_bsize / df_disp_hr, show one fractional,
+				/* f_blocks x f_frsize / df_disp_hr, show one fractional,
 				 * use suffixes if df_disp_hr == 0 */
-				make_human_readable_str(s.f_blocks, s.f_bsize, df_disp_hr));
+				make_human_readable_str(s.f_blocks, s.f_frsize, df_disp_hr));
 
 			printf(" %9s " + 1,
-				/* EXPR x f_bsize / df_disp_hr, show one fractional,
+				/* EXPR x f_frsize / df_disp_hr, show one fractional,
 				 * use suffixes if df_disp_hr == 0 */
 				make_human_readable_str((s.f_blocks - s.f_bfree),
-						s.f_bsize, df_disp_hr));
+						s.f_frsize, df_disp_hr));
 
 			printf("%9s %3u%% %s\n",
-				/* f_bavail x f_bsize / df_disp_hr, show one fractional,
+				/* f_bavail x f_frsize / df_disp_hr, show one fractional,
 				 * use suffixes if df_disp_hr == 0 */
-				make_human_readable_str(s.f_bavail, s.f_bsize, df_disp_hr),
+				make_human_readable_str(s.f_bavail, s.f_frsize, df_disp_hr),
 				blocks_percent_used, mount_point);
 #else
 			printf(" %9lu %9lu %9lu %3u%% %s\n",
-				kscale(s.f_blocks, s.f_bsize),
-				kscale(s.f_blocks - s.f_bfree, s.f_bsize),
-				kscale(s.f_bavail, s.f_bsize),
+				kscale(s.f_blocks, s.f_frsize),
+				kscale(s.f_blocks - s.f_bfree, s.f_frsize),
+				kscale(s.f_bavail, s.f_frsize),
 				blocks_percent_used, mount_point);
 #endif
 		}


More information about the busybox-cvs mailing list