[systemd/f17] Fixes for auto-restart (#817968, fdo#45511)

Michal Schmidt michich at fedoraproject.org
Tue May 22 06:58:41 UTC 2012


commit 73856426f84c82103bc73e9fb2f13b733dc39d42
Author: Michal Schmidt <mschmidt at redhat.com>
Date:   Tue May 22 08:44:18 2012 +0200

    Fixes for auto-restart (#817968, fdo#45511)

 ...n-relax-wording-in-journal-fields-7-a-bit.patch |   29 +++++
 ...lyze-switch-to-python-getopt-for-argument.patch |  124 ++++++++++++++++++++
 ...andling-of-posix_fallocate-returned-value.patch |   39 ++++++
 0333-cgtop-change-default-depth-to-3.patch         |   38 ++++++
 ...edule-JOB_RESTART-from-SERVICE_AUTO_RESTA.patch |   32 +++++
 ...ually-delay-auto-restart-if-another-job-i.patch |   25 ++++
 ...fix-auto-restart-handling-in-service_stop.patch |   49 ++++++++
 ...ix-auto-restart-handling-in-service_start.patch |   34 ++++++
 ...he-same-fstab-extension-option-syntax-eve.patch |   71 +++++++++++
 systemd.spec                                       |   14 ++-
 10 files changed, 454 insertions(+), 1 deletions(-)
---
diff --git a/0330-man-relax-wording-in-journal-fields-7-a-bit.patch b/0330-man-relax-wording-in-journal-fields-7-a-bit.patch
new file mode 100644
index 0000000..cb5c4d0
--- /dev/null
+++ b/0330-man-relax-wording-in-journal-fields-7-a-bit.patch
@@ -0,0 +1,29 @@
+From 238efd15fb361044f0473fc6445661c48ac5413f Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Tue, 22 May 2012 01:12:46 +0200
+Subject: [PATCH] man: relax wording in journal-fields(7) a bit (cherry picked
+ from commit 33ba4c4b0e9d6a7f8a73647f130aabd5b3c6bc29)
+
+---
+ man/systemd.journal-fields.xml |    8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/man/systemd.journal-fields.xml b/man/systemd.journal-fields.xml
+index aa32693..c4187b2 100644
+--- a/man/systemd.journal-fields.xml
++++ b/man/systemd.journal-fields.xml
+@@ -74,9 +74,11 @@
+                                         message string for this
+                                         entry. This is supposed to be
+                                         the primary text shown to the
+-                                        user. It is not translated,
+-                                        and is not supposed to be
+-                                        parsed for meta data.</para>
++                                        user. It is usually not
++                                        translated (but might be in
++                                        some cases), and is not
++                                        supposed to be parsed for meta
++                                        data.</para>
+                                 </listitem>
+                         </varlistentry>
+ 
diff --git a/0331-systemd-analyze-switch-to-python-getopt-for-argument.patch b/0331-systemd-analyze-switch-to-python-getopt-for-argument.patch
new file mode 100644
index 0000000..e65a842
--- /dev/null
+++ b/0331-systemd-analyze-switch-to-python-getopt-for-argument.patch
@@ -0,0 +1,124 @@
+From 688f67a34d73caea731ab70fff753efb09d5f27d Mon Sep 17 00:00:00 2001
+From: Shawn Landden <shawnlandden at gmail.com>
+Date: Thu, 3 May 2012 16:41:40 -0700
+Subject: [PATCH] systemd-analyze: switch to python getopt for argument
+ parsing
+
+this uses gnu style getopt, so you can put the opts at the end: (e.g.)
+systemd-analyze blame --user
+
+v4
+(cherry picked from commit 927735238d1cfe9bd9d9db71025e801c391cb156)
+---
+ src/analyze/systemd-analyze |   65 ++++++++++++++++++++++++++++++-------------
+ 1 file changed, 46 insertions(+), 19 deletions(-)
+
+diff --git a/src/analyze/systemd-analyze b/src/analyze/systemd-analyze
+index ad7bd9a..5d451c3 100755
+--- a/src/analyze/systemd-analyze
++++ b/src/analyze/systemd-analyze
+@@ -1,6 +1,10 @@
+ #!/usr/bin/python
+ 
+-import dbus, sys
++import getopt, dbus, sys, os
++try:
++        import cairo
++except ImportError:
++        cairo = None
+ 
+ def acquire_time_data():
+ 
+@@ -68,7 +72,7 @@ def draw_text(context, x, y, text, size = 12, r = 0, g = 0, b = 0, vcenter = 0.5
+ 
+         context.restore()
+ 
+-def help():
++def usage():
+         sys.stdout.write("""systemd-analyze [--user] time
+ systemd-analyze [--user] blame
+ systemd-analyze [--user] plot
+@@ -78,16 +82,11 @@ Process systemd profiling information
+   -h --help         Show this help
+ """)
+ 
++def help():
++        usage()
++        sys.exit()
+ 
+-bus = dbus.SystemBus()
+-command_index = 1
+-
+-if len(sys.argv) > 1 and sys.argv[1] == '--user':
+-        bus = dbus.SessionBus()
+-        command_index = 2
+-
+-
+-if len(sys.argv) <= command_index or sys.argv[command_index] == 'time':
++def time():
+ 
+         initrd_time, start_time, finish_time = acquire_start_time()
+ 
+@@ -104,7 +103,7 @@ if len(sys.argv) <= command_index or sys.argv[command_index] == 'time':
+                         finish_time/1000)
+ 
+ 
+-elif sys.argv[command_index] == 'blame':
++def blame():
+ 
+         data = acquire_time_data()
+         s = sorted(data, key = lambda i: i[2] - i[1], reverse = True)
+@@ -119,9 +118,10 @@ elif sys.argv[command_index] == 'blame':
+ 
+                 sys.stdout.write("%6lums %s\n" % ((aet - ixt) / 1000, name))
+ 
+-elif sys.argv[command_index] == 'plot':
+-        import cairo, os
+-
++def plot():
++        if cairo is None:
++                sys.stderr.write("Failed to initilize python-cairo required for 'plot' verb.\n")
++                sys.exit(1)
+         initrd_time, start_time, finish_time = acquire_start_time()
+         data = acquire_time_data()
+         s = sorted(data, key = lambda i: i[1])
+@@ -275,8 +275,35 @@ elif sys.argv[command_index] == 'plot':
+                         finish_time/1000), hcenter = 0, vcenter = -1)
+ 
+         surface.finish()
+-elif sys.argv[command_index] in ("help", "--help", "-h"):
+-        help()
+-else:
+-        sys.stderr.write("Unknown verb '%s'.\n" % sys.argv[command_index])
++
++def unknown_verb():
++        sys.stderr.write("Unknown verb '%s'.\n" % args[0])
++        usage()
+         sys.exit(1)
++
++bus = dbus.SystemBus()
++
++try:
++        opts, args = getopt.gnu_getopt(sys.argv[1:], "h", ["help", "user"])
++except getopt.GetoptError, err:
++        print str(err)
++        usage()
++        sys.exit(2)
++for o, a in opts:
++        if o in ("-h", "--help"):
++                help()
++        elif o == '--user':
++                bus = dbus.SessionBus()
++        else:
++                assert False, "unhandled option"
++
++verb = {'time' : time,
++	'blame': blame,
++	'plot' : plot,
++	'help' : help,
++	}
++
++if len(args) == 0:
++        time()
++else:
++        verb.get(args[0], unknown_verb)()
diff --git a/0332-Fixed-handling-of-posix_fallocate-returned-value.patch b/0332-Fixed-handling-of-posix_fallocate-returned-value.patch
new file mode 100644
index 0000000..89aad87
--- /dev/null
+++ b/0332-Fixed-handling-of-posix_fallocate-returned-value.patch
@@ -0,0 +1,39 @@
+From 4a06ef92d76078e1a09c3ae35abb562f27166b39 Mon Sep 17 00:00:00 2001
+From: Guillermo Vidal <guillermo.vidal at continental-corporation.com>
+Date: Wed, 9 May 2012 13:43:34 -0500
+Subject: [PATCH] Fixed handling of posix_fallocate() returned value
+
+According to the man pages of posix_fallocate, it returns zero on
+success or an error number on failure; however,  errno is not set
+on failure. If the kernel or a library other than glibc does not
+support the function for example, EOPNOTSUPP will be returned and
+the error will not be handled properly with original code.
+(cherry picked from commit fec2aa2f9ee0748fdb7148613b8a359d246cc32a)
+---
+ src/journal/journal-file.c |    6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c
+index a4df704..4fb416f 100644
+--- a/src/journal/journal-file.c
++++ b/src/journal/journal-file.c
+@@ -188,6 +188,7 @@ static int journal_file_verify_header(JournalFile *f) {
+ 
+ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) {
+         uint64_t old_size, new_size;
++        int r;
+ 
+         assert(f);
+ 
+@@ -232,8 +233,9 @@ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size)
+         /* Note that the glibc fallocate() fallback is very
+            inefficient, hence we try to minimize the allocation area
+            as we can. */
+-        if (posix_fallocate(f->fd, old_size, new_size - old_size) < 0)
+-                return -errno;
++        r = posix_fallocate(f->fd, old_size, new_size - old_size);
++        if (r != 0)
++                return -r;
+ 
+         if (fstat(f->fd, &f->last_stat) < 0)
+                 return -errno;
diff --git a/0333-cgtop-change-default-depth-to-3.patch b/0333-cgtop-change-default-depth-to-3.patch
new file mode 100644
index 0000000..e3939fb
--- /dev/null
+++ b/0333-cgtop-change-default-depth-to-3.patch
@@ -0,0 +1,38 @@
+From fdab96a080b6e577ff74f9abcbde24dc6318bf88 Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Tue, 22 May 2012 01:48:40 +0200
+Subject: [PATCH] cgtop: change default depth to 3
+
+https://bugs.freedesktop.org/show_bug.cgi?id=49778
+(cherry picked from commit 30edf1161600fe1b18f30264f05b4f602eb0e8a3)
+---
+ man/systemd-cgtop.xml |    2 +-
+ src/cgtop/cgtop.c     |    2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/man/systemd-cgtop.xml b/man/systemd-cgtop.xml
+index 2d67ae5..5149021 100644
+--- a/man/systemd-cgtop.xml
++++ b/man/systemd-cgtop.xml
+@@ -166,7 +166,7 @@
+                                 the root group is monitored, for 1
+                                 only the first level of control groups
+                                 is monitored, and so on. Defaults to
+-                                2.</para></listitem>
++                                3.</para></listitem>
+                         </varlistentry>
+ 
+                 </variablelist>
+diff --git a/src/cgtop/cgtop.c b/src/cgtop/cgtop.c
+index 33d351b..b8cf3b7 100644
+--- a/src/cgtop/cgtop.c
++++ b/src/cgtop/cgtop.c
+@@ -54,7 +54,7 @@ typedef struct Group {
+         uint64_t io_input_bps, io_output_bps;
+ } Group;
+ 
+-static unsigned arg_depth = 2;
++static unsigned arg_depth = 3;
+ static usec_t arg_delay = 1*USEC_PER_SEC;
+ 
+ static enum {
diff --git a/0334-service-schedule-JOB_RESTART-from-SERVICE_AUTO_RESTA.patch b/0334-service-schedule-JOB_RESTART-from-SERVICE_AUTO_RESTA.patch
new file mode 100644
index 0000000..35e44bd
--- /dev/null
+++ b/0334-service-schedule-JOB_RESTART-from-SERVICE_AUTO_RESTA.patch
@@ -0,0 +1,32 @@
+From 17549f658dd9858075875412931f4a245d5ad621 Mon Sep 17 00:00:00 2001
+From: David Ward <david.ward at ll.mit.edu>
+Date: Mon, 2 Apr 2012 23:45:35 -0400
+Subject: [PATCH] service: schedule JOB_RESTART from SERVICE_AUTO_RESTART
+ state
+
+Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=45511
+(cherry picked from commit 48bb58769a00e8e50a617ebbfff84599a0350fa5)
+---
+ src/core/service.c |    9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/src/core/service.c b/src/core/service.c
+index 7ce2e72..9fffb08 100644
+--- a/src/core/service.c
++++ b/src/core/service.c
+@@ -2234,9 +2234,12 @@ static void service_enter_restart(Service *s) {
+                         goto fail;
+         }
+ 
+-        service_enter_dead(s, SERVICE_SUCCESS, false);
+-
+-        if ((r = manager_add_job(UNIT(s)->manager, JOB_START, UNIT(s), JOB_FAIL, false, &error, NULL)) < 0)
++        /* Any units that are bound to this service must also be
++         * restarted. We use JOB_RESTART (instead of the more obvious
++         * JOB_START) here so that those dependency jobs will be added
++         * as well. */
++        r = manager_add_job(UNIT(s)->manager, JOB_RESTART, UNIT(s), JOB_FAIL, false, &error, NULL);
++        if (r < 0)
+                 goto fail;
+ 
+         log_debug("%s scheduled restart job.", UNIT(s)->id);
diff --git a/0335-service-actually-delay-auto-restart-if-another-job-i.patch b/0335-service-actually-delay-auto-restart-if-another-job-i.patch
new file mode 100644
index 0000000..55def77
--- /dev/null
+++ b/0335-service-actually-delay-auto-restart-if-another-job-i.patch
@@ -0,0 +1,25 @@
+From 71e7872f6c61368ecb0a76bba02d34b3fcb1467c Mon Sep 17 00:00:00 2001
+From: David Ward <david.ward at ll.mit.edu>
+Date: Sun, 29 Apr 2012 09:35:40 -0400
+Subject: [PATCH] service: actually delay auto-restart if another job is
+ pending
+
+https://bugs.freedesktop.org/show_bug.cgi?id=45511
+(cherry picked from commit feae8adb848e26110b28a06d1244e02f36cdf382)
+---
+ src/core/service.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/core/service.c b/src/core/service.c
+index 9fffb08..89f56ca 100644
+--- a/src/core/service.c
++++ b/src/core/service.c
+@@ -2232,6 +2232,8 @@ static void service_enter_restart(Service *s) {
+ 
+                 if ((r = unit_watch_timer(UNIT(s), s->restart_usec, &s->timer_watch)) < 0)
+                         goto fail;
++
++                return;
+         }
+ 
+         /* Any units that are bound to this service must also be
diff --git a/0336-service-fix-auto-restart-handling-in-service_stop.patch b/0336-service-fix-auto-restart-handling-in-service_stop.patch
new file mode 100644
index 0000000..33a131b
--- /dev/null
+++ b/0336-service-fix-auto-restart-handling-in-service_stop.patch
@@ -0,0 +1,49 @@
+From 6394fc7a0737becd995c990fc12cdf03b8f408f0 Mon Sep 17 00:00:00 2001
+From: David Ward <david.ward at ll.mit.edu>
+Date: Sun, 29 Apr 2012 09:35:48 -0400
+Subject: [PATCH] service: fix auto-restart handling in service_stop()
+
+When service_stop() handles a service in the SERVICE_AUTO_RESTART state,
+it calls service_set_state() to transition it to the SERVICE_DEAD state.
+However if the service failed, it should transition it to SERVICE_FAILED
+instead, which will trigger its OnFailure units. To achieve this, we now
+call service_enter_dead() in place of service_set_state(), which will
+transition the service to either SERVICE_DEAD or SERVICE_FAILED as is
+appropriate.
+
+Also, some misleading comments are adjusted: service_stop() is not only
+called on a user request, but also during an automatic restart in order
+to handle dependencies.
+
+Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=45511
+(cherry picked from commit f0c7b229e1aba12488ffb3ca39f606cc93291f55)
+---
+ src/core/service.c |    7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/src/core/service.c b/src/core/service.c
+index 89f56ca..7841195 100644
+--- a/src/core/service.c
++++ b/src/core/service.c
+@@ -2460,8 +2460,7 @@ static int service_stop(Unit *u) {
+ 
+         assert(s);
+ 
+-        /* This is a user request, so don't do restarts on this
+-         * shutdown. */
++        /* Don't create restart jobs from here. */
+         s->forbid_restart = true;
+ 
+         /* Already on it */
+@@ -2473,9 +2472,9 @@ static int service_stop(Unit *u) {
+             s->state == SERVICE_FINAL_SIGKILL)
+                 return 0;
+ 
+-        /* Don't allow a restart */
++        /* A restart will be scheduled or is in progress. */
+         if (s->state == SERVICE_AUTO_RESTART) {
+-                service_set_state(s, SERVICE_DEAD);
++                service_enter_dead(s, SERVICE_SUCCESS, false);
+                 return 0;
+         }
+ 
diff --git a/0337-service-fix-auto-restart-handling-in-service_start.patch b/0337-service-fix-auto-restart-handling-in-service_start.patch
new file mode 100644
index 0000000..ca4c961
--- /dev/null
+++ b/0337-service-fix-auto-restart-handling-in-service_start.patch
@@ -0,0 +1,34 @@
+From ceab730091b00a211f6978d81ea7ae58ada3aa89 Mon Sep 17 00:00:00 2001
+From: David Ward <david.ward at ll.mit.edu>
+Date: Sun, 29 Apr 2012 09:35:51 -0400
+Subject: [PATCH] service: fix auto-restart handling in service_start()
+
+Do not bypass the SERVICE_DEAD/SERVICE_FAILED state by manually issuing
+a start job while an automatic restart is pending.
+(cherry picked from commit 2e9d6c1251abc0af9aa5bc53610bd522d55be776)
+---
+ src/core/service.c |   11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/src/core/service.c b/src/core/service.c
+index 7841195..3abb729 100644
+--- a/src/core/service.c
++++ b/src/core/service.c
+@@ -2436,7 +2436,16 @@ static int service_start(Unit *u) {
+             s->state == SERVICE_START_POST)
+                 return 0;
+ 
+-        assert(s->state == SERVICE_DEAD || s->state == SERVICE_FAILED || s->state == SERVICE_AUTO_RESTART);
++        /* A service that will be restarted must be stopped first to
++         * trigger BindTo and/or OnFailure dependencies. If a user
++         * does not want to wait for the holdoff time to elapse, the
++         * service should be manually restarted, not started. */
++        if (s->state == SERVICE_AUTO_RESTART) {
++                log_warning("%s automatic restart is pending, must be stopped before issuing start request.", UNIT(s)->id);
++                return -ECANCELED;
++        }
++
++        assert(s->state == SERVICE_DEAD || s->state == SERVICE_FAILED);
+ 
+         /* Make sure we don't enter a busy loop of some kind. */
+         r = service_start_limit_test(s);
diff --git a/0338-mount-use-the-same-fstab-extension-option-syntax-eve.patch b/0338-mount-use-the-same-fstab-extension-option-syntax-eve.patch
new file mode 100644
index 0000000..ed07dfc
--- /dev/null
+++ b/0338-mount-use-the-same-fstab-extension-option-syntax-eve.patch
@@ -0,0 +1,71 @@
+From 5d03cc1e81d0b2be3647f61973f259795b13b77f Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Tue, 22 May 2012 02:00:53 +0200
+Subject: [PATCH] mount: use the same fstab extension option syntax everywhere
+
+The man page and the actual code differed, and this is now corrected
+(cherry picked from commit 92a39ae1989a7583d696afd4c89990aea802e9ea)
+
+Conflicts:
+	src/core/mount.c
+
+F17: keep the old x-systemd-* options in addition to the new ones.
+---
+ man/systemd.mount.xml |   11 ++++-------
+ src/core/mount.c      |    7 +++++--
+ 2 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/man/systemd.mount.xml b/man/systemd.mount.xml
+index 8f1cc51..a4e01fd 100644
+--- a/man/systemd.mount.xml
++++ b/man/systemd.mount.xml
+@@ -109,12 +109,9 @@
+                 <para>When reading <filename>/etc/fstab</filename> a
+                 few special mount options are understood by systemd
+                 which influence how dependencies are created for mount
+-                points from <filename>/etc/fstab</filename>. If
+-                <option>MountAuto=yes</option> is set in
+-                <filename>system.conf</filename> (which is the
+-                default), or if <option>x-systemd.mount</option> is
+-                specified as mount option, then systemd will create a
+-                dependency of type <option>Wants</option> from either
++                points from <filename>/etc/fstab</filename>. systemd
++                will create a dependency of type
++                <option>Wants</option> from either
+                 <filename>local-fs.target</filename> or
+                 <filename>remote-fs.target</filename>, depending
+                 whether the file system is local or remote. If
+@@ -123,7 +120,7 @@
+                 system. See
+                 <citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+                 for details. If
+-                <option>x-systemd-device-timeout=</option> is
++                <option>x-systemd.device-timeout=</option> is
+                 specified it may be used to configure how long systemd
+                 should wait for a device to show up before giving up
+                 on an entry from
+diff --git a/src/core/mount.c b/src/core/mount.c
+index e7a1c58..ffe1b2c 100644
+--- a/src/core/mount.c
++++ b/src/core/mount.c
+@@ -358,7 +358,8 @@ static int mount_add_fstab_links(Mount *m) {
+         nofail = !!mount_test_option(p->options, "nofail");
+         automount =
+                 mount_test_option(p->options, "comment=systemd.automount") ||
+-                mount_test_option(p->options, "x-systemd-automount");
++                mount_test_option(p->options, "x-systemd.automount") ||
++                mount_test_option(p->options, "x-systemd-automount"); /* F17 compat */
+         handle =
+                 automount ||
+                 mount_test_option(p->options, "comment=systemd.mount") ||
+@@ -520,7 +521,9 @@ static int mount_fix_timeouts(Mount *m) {
+ 
+         if ((timeout = mount_test_option(p->options, "comment=systemd.device-timeout")))
+                 timeout += 31;
+-        else if ((timeout = mount_test_option(p->options, "x-systemd-device-timeout")))
++        else if ((timeout = mount_test_option(p->options, "x-systemd.device-timeout")))
++                timeout += 25;
++        else if ((timeout = mount_test_option(p->options, "x-systemd-device-timeout"))) /* F17 compat */
+                 timeout += 25;
+         else
+                 return 0;
diff --git a/systemd.spec b/systemd.spec
index 0e671d3..7a26b4a 100644
--- a/systemd.spec
+++ b/systemd.spec
@@ -3,7 +3,7 @@
 Name:           systemd
 Url:            http://www.freedesktop.org/wiki/Software/systemd
 Version:        44
-Release:        11%{?gitcommit:.git%{gitcommit}}%{?dist}
+Release:        12%{?gitcommit:.git%{gitcommit}}%{?dist}
 License:        GPLv2+
 Group:          System Environment/Base
 Summary:        A System and Service Manager
@@ -389,6 +389,15 @@ Patch0326:      0326-journald-fix-length-of-SYSLOG_IDENTIFIER.patch
 Patch0327:      0327-journald-one-more-SYSLOG_IDENTIFIER-length-fix.patch
 Patch0328:      0328-main-allow-system-wide-limits-for-services.patch
 Patch0329:      0329-F17-fix-manpage-names.patch
+Patch0330:      0330-man-relax-wording-in-journal-fields-7-a-bit.patch
+Patch0331:      0331-systemd-analyze-switch-to-python-getopt-for-argument.patch
+Patch0332:      0332-Fixed-handling-of-posix_fallocate-returned-value.patch
+Patch0333:      0333-cgtop-change-default-depth-to-3.patch
+Patch0334:      0334-service-schedule-JOB_RESTART-from-SERVICE_AUTO_RESTA.patch
+Patch0335:      0335-service-actually-delay-auto-restart-if-another-job-i.patch
+Patch0336:      0336-service-fix-auto-restart-handling-in-service_stop.patch
+Patch0337:      0337-service-fix-auto-restart-handling-in-service_start.patch
+Patch0338:      0338-mount-use-the-same-fstab-extension-option-syntax-eve.patch
 
 # For sysvinit tools
 Obsoletes:      SysVinit < 2.86-24, sysvinit < 2.86-24
@@ -765,6 +774,9 @@ mv /etc/systemd/system/default.target.save /etc/systemd/system/default.target >/
 %{_bindir}/systemd-analyze
 
 %changelog
+* Tue May 22 2012 Michal Schmidt <mschmidt at redhat.com> - 44-12
+- Fixes for auto-restart (#817968, fdo#45511)
+
 * Mon May 21 2012 Michal Schmidt <mschmidt at redhat.com> - 44-11
 - Fix weird "TIFIER=" messages in syslog (#823498)
 - Revert ReleaseSession patch (#823485)


More information about the scm-commits mailing list