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 {
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 */
}
}