From 49911369d0c7eebc802d8ee871292cd5357b5c6c Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Mon, 5 Feb 2018 11:23:06 -0800 Subject: [PATCH] DISK: Don't auto size to shrink a disk when file system data size is unknown Fix report in #524 --- sim_disk.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/sim_disk.c b/sim_disk.c index 4d3c096e..5a9d779c 100644 --- a/sim_disk.c +++ b/sim_disk.c @@ -1732,12 +1732,13 @@ if (capac && (capac != (t_offset)-1)) { } } else { - if ((filesystem_capac != (t_offset)-1) && - (filesystem_capac > capac)) - capac = filesystem_capac; - if ((capac != (((t_offset)uptr->capac)*ctx->capac_factor*((dptr->flags & DEV_SECTORS) ? 512 : 1))) || - (DKUF_F_STD != DK_GET_FMT (uptr))) - uptr->capac = (t_addr)(capac/(ctx->capac_factor*((dptr->flags & DEV_SECTORS) ? 512 : 1))); + if ((filesystem_capac != (t_offset)-1) && /* Known file system data size AND */ + (filesystem_capac > capac)) /* Data size greater than container size? */ + capac = filesystem_capac; /* Use file system data size */ + if ((filesystem_capac != (t_offset)-1) && /* Known file system data size AND */ + (capac > (((t_offset)uptr->capac)*ctx->capac_factor*((dptr->flags & DEV_SECTORS) ? 512 : 1))) || /* Data > current size */ + (DKUF_F_STD != DK_GET_FMT (uptr))) /* OR ! autosizeable disk */ + uptr->capac = (t_addr)(capac/(ctx->capac_factor*((dptr->flags & DEV_SECTORS) ? 512 : 1))); /* update current size */ } }