forked from pool/util-linux
Accepting request 1127321 from home:goldwynr:branches:Base:System
bsc#1207987 - libuuid fix xfs regression for clocks.txt OBS-URL: https://build.opensuse.org/request/show/1127321 OBS-URL: https://build.opensuse.org/package/show/Base:System/util-linux?expand=0&rev=536
This commit is contained in:
parent
784cf57436
commit
b8470c9443
@ -0,0 +1,51 @@
|
|||||||
|
From 1d98827edde4b88068d295bbd20c31333b2ad5d4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Goldwyn Rodrigues <rgoldwyn@suse.de>
|
||||||
|
Date: Tue, 10 Oct 2023 18:08:59 -0500
|
||||||
|
Subject: [PATCH] libuuid: avoid truncate clocks.txt to improve performance
|
||||||
|
|
||||||
|
Instead of explicitly truncating clocks.txt file, pad with
|
||||||
|
whitespaces in the end of file.
|
||||||
|
This is done to improve performance of libuuid on xfs
|
||||||
|
filesystems. Instead of truncating the file, pad it with whitespaces.
|
||||||
|
This is anyways used as a failsafe method in case truncate fails.
|
||||||
|
|
||||||
|
The reason why this regression was introduced was because of:
|
||||||
|
869ae85dae64 ("xfs: flush new eof page on truncate to avoid post-eof corruption")
|
||||||
|
|
||||||
|
An attempt to move the clocks.txt to /run (tmpfs) has been attempted before
|
||||||
|
[1] and with commit ab2e7dd17 ("libuuid: move clock state file from
|
||||||
|
/var/lib to /var/run"). The latter was reverted.
|
||||||
|
|
||||||
|
[1] https://www.spinics.net/lists/util-linux-ng/msg17331.html
|
||||||
|
|
||||||
|
Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com>
|
||||||
|
|
||||||
|
diff --git a/libuuid/src/gen_uuid.c b/libuuid/src/gen_uuid.c
|
||||||
|
index db793c374..826cd2245 100644
|
||||||
|
--- a/libuuid/src/gen_uuid.c
|
||||||
|
+++ b/libuuid/src/gen_uuid.c
|
||||||
|
@@ -229,7 +229,6 @@ static int get_clock(uint32_t *clock_high, uint32_t *clock_low,
|
||||||
|
struct timeval tv;
|
||||||
|
uint64_t clock_reg;
|
||||||
|
mode_t save_umask;
|
||||||
|
- int len;
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
if (state_fd == -1)
|
||||||
|
@@ -324,14 +323,10 @@ try_again:
|
||||||
|
|
||||||
|
if (state_fd >= 0) {
|
||||||
|
rewind(state_f);
|
||||||
|
- len = fprintf(state_f,
|
||||||
|
- "clock: %04x tv: %016ld %08ld adj: %08d\n",
|
||||||
|
+ fprintf(state_f,
|
||||||
|
+ "clock: %04x tv: %016ld %08ld adj: %08d \n",
|
||||||
|
clock_seq, (long)last.tv_sec, (long)last.tv_usec, adjustment);
|
||||||
|
fflush(state_f);
|
||||||
|
- if (ftruncate(state_fd, len) < 0) {
|
||||||
|
- fprintf(state_f, " \n");
|
||||||
|
- fflush(state_f);
|
||||||
|
- }
|
||||||
|
rewind(state_f);
|
||||||
|
flock(state_fd, LOCK_UN);
|
||||||
|
}
|
@ -112,6 +112,8 @@ Patch4: 0001-Revert-libblkid-try-LUKS2-first-when-probing.patch
|
|||||||
Patch5: util-linux-fix-tests-with-64k-pagesize.patch
|
Patch5: util-linux-fix-tests-with-64k-pagesize.patch
|
||||||
Patch6: use-logind-not-utmp.patch
|
Patch6: use-logind-not-utmp.patch
|
||||||
Patch7: setterm-resize-uninit-flags.patch
|
Patch7: setterm-resize-uninit-flags.patch
|
||||||
|
# bsc#1207987 - regression fix for clock.txt on xfs (upstreamed)
|
||||||
|
Patch8: libuuid-avoid-truncate-clocks.txt-to-improve-performance.patch
|
||||||
|
|
||||||
BuildRequires: audit-devel
|
BuildRequires: audit-devel
|
||||||
BuildRequires: bc
|
BuildRequires: bc
|
||||||
|
Loading…
Reference in New Issue
Block a user