Only grow, but never shrink the disk
This commit is contained in:
parent
bce8634bf5
commit
0509d8d619
1 changed files with 14 additions and 8 deletions
|
@ -32,6 +32,8 @@
|
||||||
|
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
|
||||||
|
#define MEG(_n) ((_n) * DEV_BSIZE / 1024 / 1024)
|
||||||
|
|
||||||
static uint16_t dkcksum(struct disklabel *);
|
static uint16_t dkcksum(struct disklabel *);
|
||||||
|
|
||||||
static uint16_t
|
static uint16_t
|
||||||
|
@ -115,18 +117,22 @@ growdisk(struct system_config *sc)
|
||||||
bend = DL_GETDSIZE(&lp) - DL_GETBSTART(&lp);
|
bend = DL_GETDSIZE(&lp) - DL_GETBSTART(&lp);
|
||||||
psize = bend - DL_GETPOFFSET(p);
|
psize = bend - DL_GETPOFFSET(p);
|
||||||
|
|
||||||
if (sc->sc_dryrun ||
|
/* Only grow, but never shring the disk */
|
||||||
(bend == DL_GETBEND(&lp) && psize == DL_GETPSIZE(p))) {
|
if (bend <= DL_GETBEND(&lp) && psize <= DL_GETPSIZE(p)) {
|
||||||
log_debug("%s: %s%c uses maximum size %llu",
|
log_debug("%s: not growing %s%c, size is %lluMB",
|
||||||
__func__, sc->sc_rootdisk, last_part, psize);
|
__func__, sc->sc_rootdisk, last_part, MEG(psize));
|
||||||
|
ret = 0;
|
||||||
|
} else {
|
||||||
|
log_info("growing %s%c from %lluMB to %lluMB",
|
||||||
|
sc->sc_rootdisk, last_part,
|
||||||
|
MEG(DL_GETPSIZE(p)), MEG(psize));
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
if (sc->sc_dryrun || ret == 0) {
|
||||||
ret = 0;
|
ret = 0;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
log_debug("%s: growing %s%c from %llu to %llu",
|
|
||||||
__func__, sc->sc_rootdisk, last_part, DL_GETPSIZE(p), psize);
|
|
||||||
|
|
||||||
/* Update OpenBSD boundaries */
|
/* Update OpenBSD boundaries */
|
||||||
DL_SETBEND(&lp, bend);
|
DL_SETBEND(&lp, bend);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue