fs: fix bug when ntfsresize reports nothing to do

There is a corner case in which a target NTFS filesystem is already
shrunken. When this happens ntfsresize text output parsing breaks.

Check when ntfsresize reports nothing to do, warn the user about this
and stop the dry-run ntfsresize loop.
more_events
Jose M. Guisado 2023-06-13 17:24:40 +02:00
parent 666d2fb50f
commit 88668cb195
1 changed files with 3 additions and 0 deletions

View File

@ -229,6 +229,9 @@ def _reduce_ntfsresize(partdev):
proc_resize_dryrun = subprocess.run(cmd_resize_dryrun, stdout=subprocess.PIPE, encoding='utf-8')
returncode = proc_resize_dryrun.returncode
out_resize_dryrun = proc_resize_dryrun.stdout.strip()
if 'Nothing to do: NTFS volume size is already OK.' in out_resize_dryrun:
logging.warn('ntfsresize reports nothing to do. Is the target filesystem already shrunken?')
break
extra_size = int(out_resize_dryrun.split('Needed relocations : ')[1].split(' ')[0])*1.1+1024
new_size += int(extra_size)