[systemd-commits] 2 commits - man/sysctl.d.xml src/journal

Lennart Poettering lennart at kemper.freedesktop.org
Wed Mar 21 15:41:20 PDT 2012


 man/sysctl.d.xml           |   65 +++++++++++++++++++++++++++------------------
 src/journal/journal-file.c |    5 ++-
 src/journal/journald.c     |   10 ++++++
 3 files changed, 52 insertions(+), 28 deletions(-)

New commits:
commit 0071d9f1db6dc9a1035cf5afb81455b67ed462f6
Author: Lennart Poettering <lennart at poettering.net>
Date:   Wed Mar 21 23:40:51 2012 +0100

    journal: react with immediate rotation to a couple of more errors

diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c
index 474dd5c..5d540a7 100644
--- a/src/journal/journal-file.c
+++ b/src/journal/journal-file.c
@@ -1887,7 +1887,10 @@ int journal_file_open_reliably(
         char *p;
 
         r = journal_file_open(fname, flags, mode, template, ret);
-        if (r != -EBADMSG)
+        if (r != -EBADMSG && /* corrupted */
+            r != -ENODATA && /* truncated */
+            r != -EHOSTDOWN && /* other machine */
+            r != -EPROTONOSUPPORT) /* incompatible feature */
                 return r;
 
         if ((flags & O_ACCMODE) == O_RDONLY)
diff --git a/src/journal/journald.c b/src/journal/journald.c
index baad3ab..d27cb60 100644
--- a/src/journal/journald.c
+++ b/src/journal/journald.c
@@ -609,7 +609,15 @@ retry:
         else {
                 r = journal_file_append_entry(f, NULL, iovec, n, &s->seqnum, NULL, NULL);
 
-                if ((r == -EBADMSG || r == -E2BIG) && !vacuumed) {
+                if ((r == -E2BIG || /* hit limit */
+                     r == -EFBIG || /* hit fs limit */
+                     r == -EDQUOT || /* quota hit */
+                     r == -ENOSPC || /* disk full */
+                     r == -EBADMSG || /* corrupted */
+                     r == -ENODATA || /* truncated */
+                     r == -EHOSTDOWN || /* other machine */
+                     r == -EPROTONOSUPPORT) && /* unsupported feature */
+                    !vacuumed) {
 
                         if (r == -E2BIG)
                                 log_info("Allocation limit reached, rotating.");

commit 95f77929d8d94480015cd7383a5504cf9ebf2fa5
Author: Lennart Poettering <lennart at poettering.net>
Date:   Wed Mar 21 23:32:02 2012 +0100

    man: updates to sysctl.d(5)

diff --git a/man/sysctl.d.xml b/man/sysctl.d.xml
index 9c108b0..20f2e24 100644
--- a/man/sysctl.d.xml
+++ b/man/sysctl.d.xml
@@ -54,38 +54,51 @@
         <refsect1>
                 <title>Description</title>
 
-		<para><command>systemd</command> uses configuration files
-		from the above directories to configure
+		<para><command>systemd</command> uses configuration
+		files from the above directories to configure
 		<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>
-		kernel parameters to load during boot.</para>
+		kernel parameters during boot.</para>
         </refsect1>
 
         <refsect1>
 		<title>Configuration Format</title>
 
-		<para>The configuration files should simply contain a
-		list of variable assignments, separated by
-		newlines. Empty lines and lines whose first
-		non-whitespace character is # or ; are ignored.</para>
-
-                <para>Note that both / and . are accepted as
-                separators in sysctl variable names.</para>
-
-                <para>Each configuration file is named in the style of
-                <filename>&lt;program&gt;.conf</filename>.
-                Files in <filename>/etc/</filename> overwrite
-                files with the same name in <filename>/usr/lib/</filename>.
-                Files in <filename>/run</filename> overwrite files with
-                the same name in <filename>/etc/</filename> and
-                <filename>/usr/lib/</filename>. Packages should install their
-                configuration files in <filename>/usr/lib/</filename>, files
-                in <filename>/etc/</filename> are reserved for the local
-                administration, which possibly decides to overwrite the
-                configurations installed from packages. All files are sorted
-                by filename in alphabetical order, regardless in which of the
-                directories they reside, to ensure that a specific
-                configuration file takes precedence over another file with
-                an alphabetically later name.</para>
+		<para>The configuration files contain a list of
+		variable assignments, separated by newlines. Empty
+		lines and lines whose first non-whitespace character
+		is # or ; are ignored.</para>
+
+                <para>Note that both / and . are accepted as label
+                separators within sysctl variable
+                names. <literal>kernel.domainname=foo</literal> and
+                <literal>kernel/domainname=foo</literal> hence are
+                entirely equivalent.</para>
+
+                <para>Each configuration file shall be named in the
+                style of <filename>&lt;program&gt;.conf</filename>.
+                Files in <filename>/run/</filename> override files
+                with the same name in <filename>/usr/lib/</filename>.
+                Files in <filename>/etc</filename> override files with
+                the same name in <filename>/run/</filename> and
+                <filename>/usr/lib/</filename>. Packages should
+                install their configuration files in
+                <filename>/usr/lib/</filename>. Files in
+                <filename>/etc/</filename> are reserved for the local
+                administrator, who may use this logic to override the
+                configuration installed by vendor packages. All
+                configuration files are sorted by their name in
+                alphabetical order, regardless in which of the
+                directories they reside, to guarantee that a specific
+                configuration file takes precedence over another file
+                with an alphabetically earlier name, if both files
+                contain the same variable setting.</para>
+
+                <para>If the administrator wants to disable a
+                configuration file supplied by the vendor the
+                recommended way is to place a symlink to
+                <filename>/dev/null</filename> in
+                <filename>/etc/sysctl.d</filename> carrying with the
+                same name.</para>
         </refsect1>
 
         <refsect1>



More information about the systemd-commits mailing list