DISK: Don't auto size to shrink a disk when file system data size is unknown

Fix report in #524
This commit is contained in:
Mark Pizzolato 2018-02-05 11:23:06 -08:00
parent 8464b6bb39
commit 49911369d0

View file

@ -1732,12 +1732,13 @@ if (capac && (capac != (t_offset)-1)) {
} }
} }
else { else {
if ((filesystem_capac != (t_offset)-1) && if ((filesystem_capac != (t_offset)-1) && /* Known file system data size AND */
(filesystem_capac > capac)) (filesystem_capac > capac)) /* Data size greater than container size? */
capac = filesystem_capac; capac = filesystem_capac; /* Use file system data size */
if ((capac != (((t_offset)uptr->capac)*ctx->capac_factor*((dptr->flags & DEV_SECTORS) ? 512 : 1))) || if ((filesystem_capac != (t_offset)-1) && /* Known file system data size AND */
(DKUF_F_STD != DK_GET_FMT (uptr))) (capac > (((t_offset)uptr->capac)*ctx->capac_factor*((dptr->flags & DEV_SECTORS) ? 512 : 1))) || /* Data > current size */
uptr->capac = (t_addr)(capac/(ctx->capac_factor*((dptr->flags & DEV_SECTORS) ? 512 : 1))); (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 */
} }
} }