From 51764fb1040ab671beb0336cb7b9909830947552 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Mon, 2 Apr 2007 19:12:17 -0400 Subject: [PATCH] resize2fs (libe2p): Fix resize2fs parsing of size parameter (in sector units) This was actually a bug in libe2p's parse_num_blocks() function. When handling the 's' suffix, it was ignoring the blocksize information passed in from the caller and always interpreting the number in terms of a 1k blocksize. Addresses Debian Bug: #408298 Signed-off-by: "Theodore Ts'o" --- lib/e2p/ChangeLog | 7 +++++++ lib/e2p/parse_num.c | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/e2p/ChangeLog b/lib/e2p/ChangeLog index 557bdfd8..dc5d04f7 100644 --- a/lib/e2p/ChangeLog +++ b/lib/e2p/ChangeLog @@ -1,3 +1,10 @@ +2007-04-02 Theodore Tso + + * parse_num.c (parse_num_blocks): When parsing the 's' prefix, + take into account the filesystem blocksize so we return + the correct answer for non-1k blocksize filesystems. + (Addresses Debian Bug: #408298) + 2007-03-21 Theodore Tso * feature.c (e2p_edit_feature), mntopts.c (e2p_edit_mntopts): Fix diff --git a/lib/e2p/parse_num.c b/lib/e2p/parse_num.c index 3910e70d..7e9ee71a 100644 --- a/lib/e2p/parse_num.c +++ b/lib/e2p/parse_num.c @@ -32,7 +32,7 @@ unsigned long parse_num_blocks(const char *arg, int log_block_size) num >>= log_block_size; break; case 's': - num >>= 1; + num >>= (1+log_block_size); break; case '\0': break;