summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrik Lundquist <patrik.lundquist@gmail.com>2015-07-24 10:35:02 +0200
committerDavid Sterba <dsterba@suse.com>2015-08-31 19:25:09 +0200
commit44de34b14da87096d373f90aa29482812fc3c70c (patch)
tree53856668abc2cd42ca68f5e6a95656dd32fc615c
parent8cb5ff857a7799ec2d8b719859c59b9d446075ff (diff)
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 <patrik.lundquist@gmail.com> Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r--cmds-filesystem.c3
1 files changed, 2 insertions, 1 deletions
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;