Blame 0001-fix-minimize_writes.patch
|
|
830dbb |
commit 03f146e955e099c24f7a49eff461645e1c0a0fd7
|
|
|
830dbb |
Author: Panu Matilainen <pmatilai@redhat.com>
|
|
|
830dbb |
Date: Thu Jan 13 11:25:30 2022 +0200
|
|
|
830dbb |
|
|
|
830dbb |
Fix minimize_writes not minimizing writes since 4.15 regression
|
|
|
830dbb |
|
|
|
830dbb |
Commit 13f70e3710b2df49a923cc6450ff4a8f86e65666 caused minimize_writes
|
|
|
830dbb |
to actually not minimize anything since fsmVerify() only "verifies"
|
|
|
830dbb |
the thing does NOT exist anymore when it exist. Sigh.
|
|
|
830dbb |
|
|
|
830dbb |
FA_TOUCH needs different kind of verification, stat the file instead
|
|
|
830dbb |
to see if it needs creating afterall. This is all soooo broken...
|
|
|
830dbb |
|
|
|
830dbb |
Fixes: #1881
|
|
|
830dbb |
|
|
|
830dbb |
--- lib/fsm.c.orig
|
|
|
830dbb |
+++ lib/fsm.c
|
|
|
830dbb |
@@ -945,7 +945,12 @@ int rpmPackageFilesInstall(rpmts ts, rpmte te, rpmfiles files,
|
|
|
830dbb |
}
|
|
|
830dbb |
/* Assume file does't exist when tmp suffix is in use */
|
|
|
830dbb |
if (!fp->suffix) {
|
|
|
830dbb |
- rc = fsmVerify(fp->fpath, fi);
|
|
|
830dbb |
+ if (fp->action == FA_TOUCH) {
|
|
|
830dbb |
+ struct stat sb;
|
|
|
830dbb |
+ rc = fsmStat(fp->fpath, 1, &sb);
|
|
|
830dbb |
+ } else {
|
|
|
830dbb |
+ rc = fsmVerify(fp->fpath, fi);
|
|
|
830dbb |
+ }
|
|
|
830dbb |
} else {
|
|
|
830dbb |
rc = RPMERR_ENOENT;
|
|
|
830dbb |
}
|