From: Christian Brauner Date: Mon, 24 Jan 2022 09:12:57 +0000 (+0100) Subject: core/namespace: s/normalize_mounts()/drop_unused_mounts() X-Git-Tag: v251-rc1~465^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F22203%2Fhead;p=thirdparty%2Fsystemd.git core/namespace: s/normalize_mounts()/drop_unused_mounts() Rename the normalize_mounts() helper to drop_unused_mounts. All the helpers called in there get rid of mounts that are unused for a variety of reasons. And whereas the helpers are aptly prefixed with "drop" the overall helper isn't and instead uses "normalize". Make it more obvious what the helper actually does by renaming it from normalize_mounts() to drop_unused_mounts(). Readers of code calling this helper will immediately see that it will get rid of unused mounts. Link: https://github.com/systemd/systemd/issues/22206 --- diff --git a/src/core/namespace.c b/src/core/namespace.c index e55e9df702c..e2e88b0eb63 100644 --- a/src/core/namespace.c +++ b/src/core/namespace.c @@ -1578,7 +1578,14 @@ static size_t namespace_calculate_mounts( ns_info->private_ipc; /* /dev/mqueue */ } -static void normalize_mounts(const char *root_directory, MountEntry *mounts, size_t *n_mounts) { +/* Walk all mount entries and dropping any unused mounts. This affects all + * mounts: + * - that are implicitly protected by a path that has been rendered inaccessible + * - whose immediate parent requests the same protection mode as the mount itself + * - that are outside of the relevant root directory + * - which are duplicates + */ +static void drop_unused_mounts(const char *root_directory, MountEntry *mounts, size_t *n_mounts) { assert(root_directory); assert(n_mounts); assert(mounts || *n_mounts == 0); @@ -1684,7 +1691,7 @@ static int apply_mounts( if (!again) break; - normalize_mounts(root, mounts, n_mounts); + drop_unused_mounts(root, mounts, n_mounts); } /* Now that all filesystems have been set up, but before the @@ -2250,7 +2257,7 @@ int setup_namespace( if (r < 0) goto finish; - normalize_mounts(root, mounts, &n_mounts); + drop_unused_mounts(root, mounts, &n_mounts); } /* All above is just preparation, figuring out what to do. Let's now actually start doing something. */