]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
If mtab support is disabled, disable ro/rw mtab checks
authorStanislav Brabec <sbrabec@suse.cz>
Tue, 10 Jan 2017 12:54:17 +0000 (13:54 +0100)
committerKarel Zak <kzak@redhat.com>
Tue, 10 Jan 2017 16:32:32 +0000 (17:32 +0100)
Commit f9906424 introduced a check that should prevent different information in
mtab and /proc/mounts. The check can require significant amount of time, and for
systems without mtab support it has no sense.

Execute this code only on systems with mtab.

When a systems with large number of nodes (thousands) mount the filesystems
simultaneously, the time required for serialization causes the utimensat() to
take a large amount of time (tens of minutes) when a large number of nodes are
simultaneously updating the timestamp.

Signed-off-by: Stanislav Brabec <sbrabec@suse.cz>
libmount/src/context_mount.c

index a7ea832508e91515d48a0d2907ace8fcf3da39d1..23f0e303a20f6242894a94a6e7188e2b6adfe2f2 100644 (file)
@@ -987,6 +987,7 @@ int mnt_context_do_mount(struct libmnt_context *cxt)
        } else
                res = do_mount_by_pattern(cxt, cxt->fstype_pattern);
 
+#if USE_LIBMOUNT_SUPPORT_MTAB
        if (mnt_context_get_status(cxt)
            && !mnt_context_is_fake(cxt)
            && !cxt->helper) {
@@ -1016,6 +1017,7 @@ int mnt_context_do_mount(struct libmnt_context *cxt)
                        mnt_context_set_mflags(cxt,
                                        cxt->mountflags | MS_RDONLY);
        }
+#endif
 
        return res;
 }