[systemd-devel] [PATCH] journald: ignore failure to watch hostname_fd on older kernels

Zbigniew Jędrzejewski-Szmek zbyszek at in.waw.pl
Fri Feb 21 09:00:46 PST 2014


On Fri, Feb 21, 2014 at 11:22:50AM -0500, Dave Reisner wrote:
> Prior to 3.2, /proc/sys/kernel/hostname isn't a pollable file and
> sd_event_add_io will return EPERM. Ignore this failure, since it isn't
> critical to journald operation.
> ---
> Reported and tested by user sraue on IRC.
This should probably go above "---", to give credit in the changelog.
 
>  src/journal/journald-server.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c
> index 5872e91..add6cf5 100644
> --- a/src/journal/journald-server.c
> +++ b/src/journal/journald-server.c
> @@ -1430,6 +1430,14 @@ static int server_open_hostname(Server *s) {
>  
>          r = sd_event_add_io(s->event, &s->hostname_event_source, s->hostname_fd, 0, dispatch_hostname_change, s);
>          if (r < 0) {
> +                /* kernels prior to 3.2 don't support polling this file.
> +                 * quietly ignore the failure. */
> +                if (r == -EPERM) {
> +                        close_nointr_nofail(s->hostname_fd);
> +                        s->hostname_fd = -1;
> +                        return 0;
> +                }
Critical not, but certainly worth a warning.

Zbyszek


More information about the systemd-devel mailing list