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:
parent
8464b6bb39
commit
49911369d0
1 changed files with 7 additions and 6 deletions
13
sim_disk.c
13
sim_disk.c
|
@ -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 */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue