btrfs-progs: defrag: fix threshold overflow again
authorPatrik Lundquist <patrik.lundquist@gmail.com>
Fri, 24 Jul 2015 08:35:02 +0000 (10:35 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 31 Aug 2015 17:25:09 +0000 (19:25 +0200)
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>
cmds-filesystem.c

index 7998add..bbbd62c 100644 (file)
@@ -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;