[git commit] fstrim: do not check that specified file is on a block device

Denys Vlasenko vda.linux at googlemail.com
Thu Mar 29 14:05:10 UTC 2018


commit: https://git.busybox.net/busybox/commit/?id=3be4b9b0dee790bc19314411f109d6dcb14f97dc
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

Kernel will surely inform us in FITRIM does not make sense on a given file.

function                                             old     new   delta
fstrim_main                                          241     221     -20

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 util-linux/fstrim.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/util-linux/fstrim.c b/util-linux/fstrim.c
index 205d1e42b..558a94a9e 100644
--- a/util-linux/fstrim.c
+++ b/util-linux/fstrim.c
@@ -70,7 +70,9 @@ int fstrim_main(int argc UNUSED_PARAM, char **argv)
 		;
 #endif
 
-	opts = getopt32long(argv, "^" "o:l:m:v" "\0" "=1", fstrim_longopts,
+	opts = getopt32long(argv, "^"
+			"o:l:m:v"
+			"\0" "=1", fstrim_longopts,
 			&arg_o, &arg_l, &arg_m
 	);
 
@@ -85,15 +87,21 @@ int fstrim_main(int argc UNUSED_PARAM, char **argv)
 		range.minlen = xatoull_sfx(arg_m, kmg_i_suffixes);
 
 	mp = argv[optind];
-	if (find_block_device(mp)) {
+//Wwhy bother checking that it's a blockdev?
+//	if (find_block_device(mp)) {
 		fd = xopen_nonblocking(mp);
+
+		/* On ENOTTY error, util-linux 2.31 says:
+		 * "fstrim: FILE: the discard operation is not supported"
+		 */
 		xioctl(fd, FITRIM, &range);
+
 		if (ENABLE_FEATURE_CLEAN_UP)
 			close(fd);
 
 		if (opts & OPT_v)
 			printf("%s: %llu bytes trimmed\n", mp, (unsigned long long)range.len);
 		return EXIT_SUCCESS;
-	}
+//	}
 	return EXIT_FAILURE;
 }


More information about the busybox-cvs mailing list