diff mbox

btrfs-progs: defrag: fix threshold overflow again

Message ID 1437726902-6458-1-git-send-email-patrik.lundquist@gmail.com (mailing list archive)
State Accepted
Headers show

Commit Message

Patrik Lundquist July 24, 2015, 8:35 a.m. UTC
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>
---
 cmds-filesystem.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

David Sterba July 24, 2015, 12:12 p.m. UTC | #1
On Fri, Jul 24, 2015 at 10:35:02AM +0200, Patrik Lundquist wrote:
> 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>

Applied, thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/cmds-filesystem.c b/cmds-filesystem.c
index 800aa4d..00a3f78 100644
--- a/cmds-filesystem.c
+++ b/cmds-filesystem.c
@@ -1172,8 +1172,9 @@  static int cmd_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;