diff --git a/lib/transaction.c b/lib/transaction.c index 7ad23c5f0..305056a65 100644 --- a/lib/transaction.c +++ b/lib/transaction.c @@ -212,6 +212,11 @@ static void rpmtsUpdateDSI(const rpmts ts, dev_t dev, const char *dirName, dsi->bdelta += BLOCK_ROUND(prevSize, dsi->bsize); dsi->idelta++; } + if (fixupSize) { + dsi->bdelta += BLOCK_ROUND(fixupSize, dsi->bsize); + dsi->idelta++; + } + break; case FA_ERASE: @@ -223,9 +228,6 @@ static void rpmtsUpdateDSI(const rpmts ts, dev_t dev, const char *dirName, break; } - if (fixupSize) - dsi->bneeded -= BLOCK_ROUND(fixupSize, dsi->bsize); - /* adjust bookkeeping when requirements shrink */ if (dsi->bneeded < dsi->obneeded) dsi->obneeded = dsi->bneeded; if (dsi->ineeded < dsi->oineeded) dsi->oineeded = dsi->ineeded;