diff --git a/1014-journald-with-journaling-FS.patch b/1014-journald-with-journaling-FS.patch new file mode 100644 index 00000000..406a6aed --- /dev/null +++ b/1014-journald-with-journaling-FS.patch @@ -0,0 +1,49 @@ +--- systemd-208/src/journal/journald-server.c ++++ systemd-208/src/journal/journald-server.c 2013-12-06 12:37:27.482735840 +0000 +@@ -21,6 +21,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -878,7 +879,7 @@ finish: + + + static int system_journal_open(Server *s) { +- int r; ++ int r, fd; + char *fn; + sd_id128_t machine; + char ids[33]; +@@ -905,7 +906,28 @@ static int system_journal_open(Server *s + (void) mkdir("/var/log/journal/", 0755); + + fn = strappenda("/var/log/journal/", ids); +- (void) mkdir(fn, 0755); ++ ++ /* ++ * On journaling and/or compressing file systems avoid doubling the ++ * efforts for the system, that is set NOCOW and NOCOMP inode flags. ++ * Check for every single flag as otherwise some of the file systems ++ * may return EOPNOTSUPP on one unkown flag (like BtrFS does). ++ */ ++ if (mkdir(fn, 0755) == 0 && (fd = open(fn, O_DIRECTORY)) >= 0) { ++ long flags; ++ if (ioctl(fd, FS_IOC_GETFLAGS, &flags) == 0) { ++ if (ioctl(fd, FS_IOC_SETFLAGS, flags|FS_NOATIME_FL) == 0) ++ flags |= FS_NOATIME_FL; ++ if (ioctl(fd, FS_IOC_SETFLAGS, flags|FS_NOCOW_FL) == 0) ++ flags |= FS_NOCOW_FL; ++ if (s->compress) { ++ flags &= ~FS_COMPR_FL; ++ flags |= FS_NOCOMP_FL; ++ } ++ ioctl(fd, FS_IOC_SETFLAGS, flags); ++ } ++ close(fd); ++ } + + fn = strappenda(fn, "/system.journal"); + r = journal_file_open_reliably(fn, O_RDWR|O_CREAT, 0640, s->compress, s->seal, &s->system_metrics, s->mmap, NULL, &s->system_journal); diff --git a/systemd.changes b/systemd.changes index 2171b924..ac4e6d52 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Fri Dec 6 13:30:19 UTC 2013 - werner@suse.de + +- Add patch + 1014-journald-with-journaling-FS.patch + which now uses the file system ioctls for switching off atime, + compression, and copy-on-write of the journal directory of the + the systemd-journald (bnc#838475) +- Let us build require the package config for libpcre (bnc#853293) + ------------------------------------------------------------------- Thu Nov 28 10:25:58 UTC 2013 - lbsousajr@gmail.com diff --git a/systemd.spec b/systemd.spec index 3ec76694..daa68f57 100644 --- a/systemd.spec +++ b/systemd.spec @@ -68,6 +68,7 @@ BuildRequires: pkgconfig(liblzma) BuildRequires: pkgconfig(libmicrohttpd) %endif BuildRequires: pkgconfig(libpci) >= 3 +BuildRequires: pkgconfig(libpcre) %if ! 0%{?bootstrap} BuildRequires: pkgconfig(libqrencode) %endif @@ -260,9 +261,12 @@ Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch Patch1010: 1010-do-not-install-sulogin-unit-with-poweroff.patch # PATCH-FIX-OPENSUSE 1011-check-4-valid-kmsg-device.patch -- Avoid busy systemd-journald (bnc#851393) Patch1011: 1011-check-4-valid-kmsg-device.patch -# PATCH-FIX-PSTREAM 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch +# PATCH-FIX-UPSTREAM 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch Patch1012: 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch +# PATCH-FIX-UPSTREAM U_logind_revert_lazy_session_activation_on_non_vt_seats.patch Patch1013: U_logind_revert_lazy_session_activation_on_non_vt_seats.patch +# PATCH-FIX-OPENSUSE 1014-journald-with-journaling-FS.patch +Patch1014: 1014-journald-with-journaling-FS.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -542,6 +546,7 @@ cp %{SOURCE7} m4/ %patch1011 -p1 %patch1012 -p1 %patch1013 -p1 +%patch1014 -p1 # ensure generate files are removed rm -f units/emergency.service