From 44de34b14da87096d373f90aa29482812fc3c70c Mon Sep 17 00:00:00 2001 From: Patrik Lundquist Date: Fri, 24 Jul 2015 10:35:02 +0200 Subject: btrfs-progs: defrag: fix threshold overflow again Commit dedb1ebeee847e3c4d71e14d0c1077887630e44a broke commit 96cfbbf0ea9fce7ecaa9e03964474f407f6e76ab. Casting thresh value greater than (u32)-1 simply truncates bits while desired value is (u32)-1 for max defrag threshold. I.e. "btrfs fi defrag -t 4g" is trimmed/truncated to 0 and "-t 5g" to 1073741824. Also added a missing newline. Signed-off-by: Patrik Lundquist Signed-off-by: David Sterba --- cmds-filesystem.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'cmds-filesystem.c') diff --git a/cmds-filesystem.c b/cmds-filesystem.c index 7998add6..bbbd62ce 100644 --- a/cmds-filesystem.c +++ b/cmds-filesystem.c @@ -1172,8 +1172,9 @@ static int cmd_filesystem_defrag(int argc, char **argv) thresh = parse_size(optarg); if (thresh > (u32)-1) { fprintf(stderr, - "WARNING: target extent size %llu too big, trimmed to %u", + "WARNING: target extent size %llu too big, trimmed to %u\n", thresh, (u32)-1); + thresh = (u32)-1; } defrag_global_fancy_ioctl = 1; break; -- cgit v1.2.3