Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 09 Jan 2026 20:17:25 +0000
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Cc:        Ankush Mondal <mondalankush9851@gmail.com>
Subject:   git: 539547151678 - main - df: Fix -k flag consistency with other BLOCKSIZE flags
Message-ID:  <69616255.8a01.65a8a4dc@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=539547151678c63903dddda214b16b177cf418b8

commit 539547151678c63903dddda214b16b177cf418b8
Author:     Ankush Mondal <mondalankush9851@gmail.com>
AuthorDate: 2025-11-29 11:15:30 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2026-01-09 20:17:12 +0000

    df: Fix -k flag consistency with other BLOCKSIZE flags
    
    This patch resolves inconsistent behavior between the -k option and
    other related flags, including -P. Previously, using -k resulted in
    output displayed in 1024-byte blocks, which did not align with the
    behavior of similar options such as -m and -g, where output is shown in
    1M-blocks and 1G-blocks respectively.
    
    The updated implementation ensures that -k now correctly displays sizes
    in 1K-blocks. In addition, the patch incorporates the POSIX requirement
    that when both -k -P are specified, the block size must be explicitly
    forced to 1024-blocks.
    
    Together, these changes make the behavior of -k consistent, predictable,
    and compliant with the standard.
    
    Signed-off-by: Ankush Mondal <mondalankush9851@gmail.com>
    Reviewed by: imp
    Pull Request: https://github.com/freebsd/freebsd-src/pull/1906
---
 bin/df/df.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/bin/df/df.c b/bin/df/df.c
index db5b8b18beae..12478d23a2ea 100644
--- a/bin/df/df.c
+++ b/bin/df/df.c
@@ -128,11 +128,12 @@ main(int argc, char *argv[])
 			/*
 			 * POSIX specifically discusses the behavior of
 			 * both -k and -P. It states that the blocksize should
-			 * be set to 1024. Thus, if this occurs, simply break
-			 * rather than clobbering the old blocksize.
+			 * be set to 1024.
 			 */
-			if (kflag)
+			if (kflag) {
+				setenv("BLOCKSIZE", "1024", 1);
 				break;
+			}
 			setenv("BLOCKSIZE", "512", 1);
 			hflag = 0;
 			break;
@@ -154,7 +155,7 @@ main(int argc, char *argv[])
 			break;
 		case 'k':
 			kflag++;
-			setenv("BLOCKSIZE", "1024", 1);
+			setenv("BLOCKSIZE", "1k", 1);
 			hflag = 0;
 			break;
 		case 'l':


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69616255.8a01.65a8a4dc>