Re: [systemd-devel] [PATCH] mount: use libmount to monitor mountinfo & utab

2015-06-17 Thread Lennart Poettering
On Wed, 03.06.15 14:59, Karel Zak (k...@redhat.com) wrote:

> The current implementation directly monitor /proc/self/mountinfo and
> /run/mount/utab files. It's really not optimal because utab file is
> private libmount stuff without any official guaranteed semantic.
> 
> The libmount since v2.26 provides API to monitor mount kernel &
> userspace changes. This patch replaces the current implementation with
> libmount based solution.
> 
> Now the manager.h includes , so $MOUNT_CFLAGS has been
> necessary to add to many tests CFLAGS.
> 
> Note that mnt_monitor_event_cleanup() in v2.26 is broken, so the patch
> uses mnt_monitor_next_change(). It's exactly the same solution which
> uses the current libmount HEAD (mnt_monitor_event_cleanup() is API
> shorcut only).

For the sake of the archives, this is now tracked on github:

https://github.com/systemd/systemd/pull/194

Lennart

-- 
Lennart Poettering, Red Hat
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [PATCH] mount: use libmount to monitor mountinfo & utab

2015-06-03 Thread systemd github import bot
Patchset imported to github.
To create a pull request, one of the main developers has to initiate one via:


--
Generated by https://github.com/haraldh/mail2git
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


[systemd-devel] [PATCH] mount: use libmount to monitor mountinfo & utab

2015-06-03 Thread Karel Zak
The current implementation directly monitor /proc/self/mountinfo and
/run/mount/utab files. It's really not optimal because utab file is
private libmount stuff without any official guaranteed semantic.

The libmount since v2.26 provides API to monitor mount kernel &
userspace changes. This patch replaces the current implementation with
libmount based solution.

Now the manager.h includes , so $MOUNT_CFLAGS has been
necessary to add to many tests CFLAGS.

Note that mnt_monitor_event_cleanup() in v2.26 is broken, so the patch
uses mnt_monitor_next_change(). It's exactly the same solution which
uses the current libmount HEAD (mnt_monitor_event_cleanup() is API
shorcut only).
---
V2:
 - update README
 - add missing (void) 

 Makefile.am|  33 --
 README |   2 +-
 configure.ac   |   2 +-
 src/core/manager.c |   2 +-
 src/core/manager.h |   5 ++-
 src/core/mount.c   | 100 -
 6 files changed, 50 insertions(+), 94 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 64038a5..c1a97de 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1329,7 +1329,8 @@ systemd_SOURCES = \
 
 systemd_CFLAGS = \
$(AM_CFLAGS) \
-   $(SECCOMP_CFLAGS)
+   $(SECCOMP_CFLAGS) \
+   $(MOUNT_CFLAGS)
 
 systemd_LDADD = \
libsystemd-core.la \
@@ -1532,7 +1533,8 @@ test_engine_SOURCES = \
 
 test_engine_CFLAGS = \
$(AM_CFLAGS) \
-   $(SECCOMP_CFLAGS)
+   $(SECCOMP_CFLAGS) \
+   $(MOUNT_CFLAGS)
 
 test_engine_LDADD = \
libsystemd-core.la \
@@ -1543,7 +1545,8 @@ test_job_type_SOURCES = \
 
 test_job_type_CFLAGS = \
$(AM_CFLAGS) \
-   $(SECCOMP_CFLAGS)
+   $(SECCOMP_CFLAGS) \
+   $(MOUNT_CFLAGS)
 
 test_job_type_LDADD = \
libsystemd-core.la \
@@ -1587,7 +1590,8 @@ test_unit_name_SOURCES = \
 
 test_unit_name_CFLAGS = \
$(AM_CFLAGS) \
-   $(SECCOMP_CFLAGS)
+   $(SECCOMP_CFLAGS) \
+   $(MOUNT_CFLAGS)
 
 test_unit_name_LDADD = \
libsystemd-core.la \
@@ -1598,7 +1602,8 @@ test_unit_file_SOURCES = \
 
 test_unit_file_CFLAGS = \
$(AM_CFLAGS) \
-   $(SECCOMP_CFLAGS)
+   $(SECCOMP_CFLAGS) \
+   $(MOUNT_CFLAGS)
 
 test_unit_file_LDADD = \
libsystemd-core.la \
@@ -1811,7 +1816,8 @@ test_tables_CPPFLAGS = \
 
 test_tables_CFLAGS = \
$(AM_CFLAGS) \
-   $(SECCOMP_CFLAGS)
+   $(SECCOMP_CFLAGS) \
+   $(MOUNT_CFLAGS)
 
 test_tables_LDADD = \
libsystemd-logs.la \
@@ -1944,7 +1950,8 @@ test_cgroup_mask_SOURCES = \
src/test/test-cgroup-mask.c
 
 test_cgroup_mask_CPPFLAGS = \
-   $(AM_CPPFLAGS)
+   $(AM_CPPFLAGS) \
+   $(MOUNT_CFLAGS)
 
 test_cgroup_mask_CFLAGS = \
$(AM_CFLAGS) \
@@ -1990,7 +1997,8 @@ test_path_SOURCES = \
src/test/test-path.c
 
 test_path_CFLAGS = \
-   $(AM_CFLAGS)
+   $(AM_CFLAGS) \
+   $(MOUNT_CFLAGS)
 
 test_path_LDADD = \
libsystemd-core.la
@@ -1999,7 +2007,8 @@ test_execute_SOURCES = \
src/test/test-execute.c
 
 test_execute_CFLAGS = \
-   $(AM_CFLAGS)
+   $(AM_CFLAGS) \
+   $(MOUNT_CFLAGS)
 
 test_execute_LDADD = \
libsystemd-core.la
@@ -2027,7 +2036,8 @@ test_sched_prio_SOURCES = \
src/test/test-sched-prio.c
 
 test_sched_prio_CPPFLAGS = \
-   $(AM_CPPFLAGS)
+   $(AM_CPPFLAGS) \
+   $(MOUNT_CFLAGS)
 
 test_sched_prio_CFLAGS = \
$(AM_CFLAGS) \
@@ -2104,7 +2114,8 @@ systemd_analyze_SOURCES = \
 
 systemd_analyze_CFLAGS = \
$(AM_CFLAGS) \
-   $(SECCOMP_CFLAGS)
+   $(SECCOMP_CFLAGS) \
+   $(MOUNT_CFLAGS)
 
 systemd_analyze_LDADD = \
libsystemd-core.la \
diff --git a/README b/README
index b810044..19abeb2 100644
--- a/README
+++ b/README
@@ -114,7 +114,7 @@ REQUIREMENTS:
 
 glibc >= 2.16
 libcap
-libmount >= 2.20 (from util-linux)
+libmount >= 2.26 (from util-linux)
 libseccomp >= 1.0.0 (optional)
 libblkid >= 2.24 (from util-linux) (optional)
 libkmod >= 15 (optional)
diff --git a/configure.ac b/configure.ac
index 0532c54..61f9a0f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -438,7 +438,7 @@ AM_CONDITIONAL(HAVE_BLKID, [test "$have_blkid" = "yes"])
 
 # 
--
 have_libmount=no
-PKG_CHECK_MODULES(MOUNT, [ mount >= 2.20 ],
+PKG_CHECK_MODULES(MOUNT, [ mount >= 2.26 ],
 [AC_DEFINE(HAVE_LIBMOUNT, 1, [Define if libmount is available]) 
have_libmount=yes], have_libmount=no)
 if test "x$have_libmount" = xno; then
 AC_MSG_ERROR([*** libmount support required but libraries not found])
diff --git a/src/core/manager.c b/src/core/manager.c
index ae473d0..10ab83a 100644
--- a/src/core/manager.c
+++ b/src/core/manager.c
@@ -568,7 +568,7 @@ int manager_new(ManagerRunningAs running_as, bool test_run, 
Manager **_m) {
 
 m->idle_pipe[0] = m->idle_pipe[1] = m->idle_pipe[2] = m->idle_pipe[3] 
= -1;
 
-m->pin_cgr

Re: [systemd-devel] [PATCH] mount: use libmount to monitor mountinfo & utab

2015-06-02 Thread Tom Gundersen
On Tue, Jun 2, 2015 at 1:53 PM, Karel Zak  wrote:
> On Mon, Jun 01, 2015 at 05:06:56PM +0200, Tom Gundersen wrote:
>> > -(void) 
>> > sd_event_source_set_description(m->mount_utab_event_source, 
>> > "mount-utab-dispatch");
>> > +sd_event_source_set_description(m->mount_event_source, 
>> > "mount-monitor-dispatch");
>>
>> This should be cast to (void) unless you check the return.
>
> Frankly, I don't like it. It's old-style programming garbage. For
> compiler it's probably irrelevant construction and for developers
> (code readers) we have better things like warn_unused_result.

The policy in systemd is that as a general rule we check the return
value of functions, only if it truly does not matter do we explicitly
indicate this by casting to void. This is as much for readers of the
code (who can then distinguish between accidentally forgetting to
check the return and intentionally ignoring it) as for static checkers
(Coverity in particular will complain).

> I have removed many of these (void) from util-linux and nobody
> complains.
>
> If you really want to force people to check return code than mark
> function by warn_unused_result and if you still want to ignore the
> result for these functions in some situations then you can use
> something like:

I don't think warn_unused_result is the right thing to do btw, that is
about the provider enforcing checking of result whereas our policy is
as a consumer (both of our internal functions and external libraries).

> # define ignore_result(x) __extension__ ({ \
> __typeof__(x) __dummy __attribute__((__unused__)) = (x);
> (void) __dummy; \
> })
>
>
> the result is more readable and obvious:
>
>ignore_result( sd_event_source_set_description(foo, bar ) );
>
>
> Sometimes we use this macro to keep silent some crazy glibc functions.
>
>
> Anyway, if (void) is really systemd coding style then I'm going to
> update the patch. No problem ;-)

Thanks!

Cheers,

Tom
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [PATCH] mount: use libmount to monitor mountinfo & utab

2015-06-02 Thread Marcos Mello
Karel Zak  redhat.com> writes:

> 
> The current implementation directly monitor /proc/self/mountinfo and
> /run/mount/utab files. It's really not optimal because utab file is
> private libmount stuff without any official guaranteed semantic.
> 
> [...]

Please update libmount requirement in README.

___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [PATCH] mount: use libmount to monitor mountinfo & utab

2015-06-02 Thread Karel Zak
On Mon, Jun 01, 2015 at 05:06:56PM +0200, Tom Gundersen wrote:
> > -(void) 
> > sd_event_source_set_description(m->mount_utab_event_source, 
> > "mount-utab-dispatch");
> > +sd_event_source_set_description(m->mount_event_source, 
> > "mount-monitor-dispatch");
> 
> This should be cast to (void) unless you check the return.

Frankly, I don't like it. It's old-style programming garbage. For
compiler it's probably irrelevant construction and for developers
(code readers) we have better things like warn_unused_result.

I have removed many of these (void) from util-linux and nobody
complains. 
 
If you really want to force people to check return code than mark 
function by warn_unused_result and if you still want to ignore the
result for these functions in some situations then you can use
something like:

# define ignore_result(x) __extension__ ({ \
__typeof__(x) __dummy __attribute__((__unused__)) = (x);
(void) __dummy; \
})


the result is more readable and obvious:

   ignore_result( sd_event_source_set_description(foo, bar ) );


Sometimes we use this macro to keep silent some crazy glibc functions.


Anyway, if (void) is really systemd coding style then I'm going to
update the patch. No problem ;-)

Karel

-- 
 Karel Zak  
 http://karelzak.blogspot.com
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [PATCH] mount: use libmount to monitor mountinfo & utab

2015-06-01 Thread Tom Gundersen
Hi Karel,

On Mon, Jun 1, 2015 at 2:07 PM, Karel Zak  wrote:
> The current implementation directly monitor /proc/self/mountinfo and
> /run/mount/utab files. It's really not optimal because utab file is
> private libmount stuff without any official guaranteed semantic.
>
> The libmount since v2.26 provides API to monitor mount kernel &
> userspace changes. This patch replaces the current implementation with
> libmount based solution.
>
> Now the manager.h includes , so $MOUNT_CFLAGS has been
> necessary to add to many tests CFLAGS.
>
> Note that mnt_monitor_event_cleanup() in v2.26 is broken, so the patch
> uses mnt_monitor_next_change(). It's exactly the same solution which
> uses the current libmount HEAD (mnt_monitor_event_cleanup() is API
> shorcut only).


Tiny nitpick below, otherwise look good to me.

Cheers,

Tom

> ---
>  Makefile.am|  33 --
>  configure.ac   |   2 +-
>  src/core/manager.c |   2 +-
>  src/core/manager.h |   5 ++-
>  src/core/mount.c   | 100 
> -
>  5 files changed, 49 insertions(+), 93 deletions(-)
>
> diff --git a/Makefile.am b/Makefile.am
> index ed5135d..3815e72 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -1352,7 +1352,8 @@ systemd_SOURCES = \
>
>  systemd_CFLAGS = \
> $(AM_CFLAGS) \
> -   $(SECCOMP_CFLAGS)
> +   $(SECCOMP_CFLAGS) \
> +   $(MOUNT_CFLAGS)
>
>  systemd_LDADD = \
> libsystemd-core.la \
> @@ -1554,7 +1555,8 @@ test_engine_SOURCES = \
>
>  test_engine_CFLAGS = \
> $(AM_CFLAGS) \
> -   $(SECCOMP_CFLAGS)
> +   $(SECCOMP_CFLAGS) \
> +   $(MOUNT_CFLAGS)
>
>  test_engine_LDADD = \
> libsystemd-core.la \
> @@ -1565,7 +1567,8 @@ test_job_type_SOURCES = \
>
>  test_job_type_CFLAGS = \
> $(AM_CFLAGS) \
> -   $(SECCOMP_CFLAGS)
> +   $(SECCOMP_CFLAGS) \
> +   $(MOUNT_CFLAGS)
>
>  test_job_type_LDADD = \
> libsystemd-core.la \
> @@ -1609,7 +1612,8 @@ test_unit_name_SOURCES = \
>
>  test_unit_name_CFLAGS = \
> $(AM_CFLAGS) \
> -   $(SECCOMP_CFLAGS)
> +   $(SECCOMP_CFLAGS) \
> +   $(MOUNT_CFLAGS)
>
>  test_unit_name_LDADD = \
> libsystemd-core.la \
> @@ -1620,7 +1624,8 @@ test_unit_file_SOURCES = \
>
>  test_unit_file_CFLAGS = \
> $(AM_CFLAGS) \
> -   $(SECCOMP_CFLAGS)
> +   $(SECCOMP_CFLAGS) \
> +   $(MOUNT_CFLAGS)
>
>  test_unit_file_LDADD = \
> libsystemd-core.la \
> @@ -1838,7 +1843,8 @@ test_tables_CPPFLAGS = \
>
>  test_tables_CFLAGS = \
> $(AM_CFLAGS) \
> -   $(SECCOMP_CFLAGS)
> +   $(SECCOMP_CFLAGS) \
> +   $(MOUNT_CFLAGS)
>
>  test_tables_LDADD = \
> libsystemd-logs.la \
> @@ -1973,7 +1979,8 @@ test_cgroup_mask_SOURCES = \
> src/test/test-cgroup-mask.c
>
>  test_cgroup_mask_CPPFLAGS = \
> -   $(AM_CPPFLAGS)
> +   $(AM_CPPFLAGS) \
> +   $(MOUNT_CFLAGS)
>
>  test_cgroup_mask_CFLAGS = \
> $(AM_CFLAGS) \
> @@ -2022,7 +2029,8 @@ test_path_SOURCES = \
> src/test/test-path.c
>
>  test_path_CFLAGS = \
> -   $(AM_CFLAGS)
> +   $(AM_CFLAGS) \
> +   $(MOUNT_CFLAGS)
>
>  test_path_LDADD = \
> libsystemd-core.la
> @@ -2031,7 +2039,8 @@ test_execute_SOURCES = \
> src/test/test-execute.c
>
>  test_execute_CFLAGS = \
> -   $(AM_CFLAGS)
> +   $(AM_CFLAGS) \
> +   $(MOUNT_CFLAGS)
>
>  test_execute_LDADD = \
> libsystemd-core.la
> @@ -2061,7 +2070,8 @@ test_sched_prio_SOURCES = \
> src/test/test-sched-prio.c
>
>  test_sched_prio_CPPFLAGS = \
> -   $(AM_CPPFLAGS)
> +   $(AM_CPPFLAGS) \
> +   $(MOUNT_CFLAGS)
>
>  test_sched_prio_CFLAGS = \
> $(AM_CFLAGS) \
> @@ -2133,7 +2143,8 @@ systemd_analyze_SOURCES = \
>
>  systemd_analyze_CFLAGS = \
> $(AM_CFLAGS) \
> -   $(SECCOMP_CFLAGS)
> +   $(SECCOMP_CFLAGS) \
> +   $(MOUNT_CFLAGS)
>
>  systemd_analyze_LDADD = \
> libsystemd-core.la \
> diff --git a/configure.ac b/configure.ac
> index 48cedb5..74ec386 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -454,7 +454,7 @@ AM_CONDITIONAL(HAVE_BLKID, [test "$have_blkid" = "yes"])
>
>  # 
> --
>  have_libmount=no
> -PKG_CHECK_MODULES(MOUNT, [ mount >= 2.20 ],
> +PKG_CHECK_MODULES(MOUNT, [ mount >= 2.26 ],
>  [AC_DEFINE(HAVE_LIBMOUNT, 1, [Define if libmount is available]) 
> have_libmount=yes], have_libmount=no)
>  if test "x$have_libmount" = xno; then
>  AC_MSG_ERROR([*** libmount support required but libraries not found])
> diff --git a/src/core/manager.c b/src/core/manager.c
> index b931b0d..6881bb2 100644
> --- a/src/core/manager.c
> +++ b/src/core/manager.c
> @@ -567,7 +567,7 @@ int manager_new(ManagerRunningAs running_as, bool 
> test_run, Manager **_m) {
>
>  m->idle_pipe[0] = m->idle_pipe[1] = m->idle_pipe[2] = 
> m->idle_pipe[3] = -1;
>
> -m->pin_cgroupfs_fd = m->notify_fd = m->signal_fd = m->time_ch

Re: [systemd-devel] [PATCH] mount: use libmount to monitor mountinfo & utab

2015-06-01 Thread systemd github import bot
Patchset imported to github.
Pull request:


--
Generated by https://github.com/haraldh/mail2git
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


[systemd-devel] [PATCH] mount: use libmount to monitor mountinfo & utab

2015-06-01 Thread Karel Zak
The current implementation directly monitor /proc/self/mountinfo and
/run/mount/utab files. It's really not optimal because utab file is
private libmount stuff without any official guaranteed semantic.

The libmount since v2.26 provides API to monitor mount kernel &
userspace changes. This patch replaces the current implementation with
libmount based solution.

Now the manager.h includes , so $MOUNT_CFLAGS has been
necessary to add to many tests CFLAGS.

Note that mnt_monitor_event_cleanup() in v2.26 is broken, so the patch
uses mnt_monitor_next_change(). It's exactly the same solution which
uses the current libmount HEAD (mnt_monitor_event_cleanup() is API
shorcut only).
---
 Makefile.am|  33 --
 configure.ac   |   2 +-
 src/core/manager.c |   2 +-
 src/core/manager.h |   5 ++-
 src/core/mount.c   | 100 -
 5 files changed, 49 insertions(+), 93 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index ed5135d..3815e72 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1352,7 +1352,8 @@ systemd_SOURCES = \
 
 systemd_CFLAGS = \
$(AM_CFLAGS) \
-   $(SECCOMP_CFLAGS)
+   $(SECCOMP_CFLAGS) \
+   $(MOUNT_CFLAGS)
 
 systemd_LDADD = \
libsystemd-core.la \
@@ -1554,7 +1555,8 @@ test_engine_SOURCES = \
 
 test_engine_CFLAGS = \
$(AM_CFLAGS) \
-   $(SECCOMP_CFLAGS)
+   $(SECCOMP_CFLAGS) \
+   $(MOUNT_CFLAGS)
 
 test_engine_LDADD = \
libsystemd-core.la \
@@ -1565,7 +1567,8 @@ test_job_type_SOURCES = \
 
 test_job_type_CFLAGS = \
$(AM_CFLAGS) \
-   $(SECCOMP_CFLAGS)
+   $(SECCOMP_CFLAGS) \
+   $(MOUNT_CFLAGS)
 
 test_job_type_LDADD = \
libsystemd-core.la \
@@ -1609,7 +1612,8 @@ test_unit_name_SOURCES = \
 
 test_unit_name_CFLAGS = \
$(AM_CFLAGS) \
-   $(SECCOMP_CFLAGS)
+   $(SECCOMP_CFLAGS) \
+   $(MOUNT_CFLAGS)
 
 test_unit_name_LDADD = \
libsystemd-core.la \
@@ -1620,7 +1624,8 @@ test_unit_file_SOURCES = \
 
 test_unit_file_CFLAGS = \
$(AM_CFLAGS) \
-   $(SECCOMP_CFLAGS)
+   $(SECCOMP_CFLAGS) \
+   $(MOUNT_CFLAGS)
 
 test_unit_file_LDADD = \
libsystemd-core.la \
@@ -1838,7 +1843,8 @@ test_tables_CPPFLAGS = \
 
 test_tables_CFLAGS = \
$(AM_CFLAGS) \
-   $(SECCOMP_CFLAGS)
+   $(SECCOMP_CFLAGS) \
+   $(MOUNT_CFLAGS)
 
 test_tables_LDADD = \
libsystemd-logs.la \
@@ -1973,7 +1979,8 @@ test_cgroup_mask_SOURCES = \
src/test/test-cgroup-mask.c
 
 test_cgroup_mask_CPPFLAGS = \
-   $(AM_CPPFLAGS)
+   $(AM_CPPFLAGS) \
+   $(MOUNT_CFLAGS)
 
 test_cgroup_mask_CFLAGS = \
$(AM_CFLAGS) \
@@ -2022,7 +2029,8 @@ test_path_SOURCES = \
src/test/test-path.c
 
 test_path_CFLAGS = \
-   $(AM_CFLAGS)
+   $(AM_CFLAGS) \
+   $(MOUNT_CFLAGS)
 
 test_path_LDADD = \
libsystemd-core.la
@@ -2031,7 +2039,8 @@ test_execute_SOURCES = \
src/test/test-execute.c
 
 test_execute_CFLAGS = \
-   $(AM_CFLAGS)
+   $(AM_CFLAGS) \
+   $(MOUNT_CFLAGS)
 
 test_execute_LDADD = \
libsystemd-core.la
@@ -2061,7 +2070,8 @@ test_sched_prio_SOURCES = \
src/test/test-sched-prio.c
 
 test_sched_prio_CPPFLAGS = \
-   $(AM_CPPFLAGS)
+   $(AM_CPPFLAGS) \
+   $(MOUNT_CFLAGS)
 
 test_sched_prio_CFLAGS = \
$(AM_CFLAGS) \
@@ -2133,7 +2143,8 @@ systemd_analyze_SOURCES = \
 
 systemd_analyze_CFLAGS = \
$(AM_CFLAGS) \
-   $(SECCOMP_CFLAGS)
+   $(SECCOMP_CFLAGS) \
+   $(MOUNT_CFLAGS)
 
 systemd_analyze_LDADD = \
libsystemd-core.la \
diff --git a/configure.ac b/configure.ac
index 48cedb5..74ec386 100644
--- a/configure.ac
+++ b/configure.ac
@@ -454,7 +454,7 @@ AM_CONDITIONAL(HAVE_BLKID, [test "$have_blkid" = "yes"])
 
 # 
--
 have_libmount=no
-PKG_CHECK_MODULES(MOUNT, [ mount >= 2.20 ],
+PKG_CHECK_MODULES(MOUNT, [ mount >= 2.26 ],
 [AC_DEFINE(HAVE_LIBMOUNT, 1, [Define if libmount is available]) 
have_libmount=yes], have_libmount=no)
 if test "x$have_libmount" = xno; then
 AC_MSG_ERROR([*** libmount support required but libraries not found])
diff --git a/src/core/manager.c b/src/core/manager.c
index b931b0d..6881bb2 100644
--- a/src/core/manager.c
+++ b/src/core/manager.c
@@ -567,7 +567,7 @@ int manager_new(ManagerRunningAs running_as, bool test_run, 
Manager **_m) {
 
 m->idle_pipe[0] = m->idle_pipe[1] = m->idle_pipe[2] = m->idle_pipe[3] 
= -1;
 
-m->pin_cgroupfs_fd = m->notify_fd = m->signal_fd = m->time_change_fd = 
m->dev_autofs_fd = m->private_listen_fd = m->kdbus_fd = m->utab_inotify_fd = -1;
+m->pin_cgroupfs_fd = m->notify_fd = m->signal_fd = m->time_change_fd = 
m->dev_autofs_fd = m->private_listen_fd = m->kdbus_fd = -1;
 m->current_job_id = 1; /* start as id #1, so that we can leave #0 
around as "null-like" value */
 
 m->ask_password_inotify_fd = -1;
diff --git a/src