On Mon 19 Apr 2021 at 20:45, Su Yue <l...@damenly.su> wrote:
Resize to nums without sign prefix makes false output:
Resize device id 1 (/dev/sdb1) from 298.09GiB to 0.00B
The resize operation would take effect though.
Fix it by handling the case if mod is 0 in check_resize_args().
Issue: #307
Reported-by: Chris Murphy <li...@colorremedies.com>
Signed-off-by: Su Yue <l...@damenly.su>
---
cmds/filesystem.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/cmds/filesystem.c b/cmds/filesystem.c
index 9e3cce687d6e..607c85a0bccc 100644
--- a/cmds/filesystem.c
+++ b/cmds/filesystem.c
@@ -1158,6 +1158,13 @@ static int check_resize_args(const char
*amount, const char *path) {
}
old_size = di_args[dev_idx].total_bytes;
+ /* For target sizes without '+'/'-' sign prefix(e.g.
1:150g) */
+ if (mod == 0) {
+ new_size = diff;
+ diff = new_size - old_size;
+ mod = diff;
Hmmm.. diff is a u64... will send v2.
+ }
+
if (mod < 0) {
if (diff > old_size) {
error("current size is %s which is smaller than
%s",