mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-04-20 00:16:38 +02:00
util-linux 2.41 introduced a regression that
[breaks kubernetes subpath volume mounts][0]. The regression has been
[acknowledged][1] and [fixed][2] upstream. Backport that change to fix the
regression.
[0]:https://github.com/kubernetes/kubernetes/issues/130999
[1]:https://github.com/util-linux/util-linux/issues/3474
[2]:77723beaaa
40 lines
2.3 KiB
Diff
40 lines
2.3 KiB
Diff
From 77723beaaaca654f72ac9538772e69fbafa8835d Mon Sep 17 00:00:00 2001
|
|
From: Karel Zak <kzak@redhat.com>
|
|
Date: Mon, 24 Mar 2025 14:31:05 +0100
|
|
Subject: [PATCH] libmount: fix --no-canonicalize regression
|
|
|
|
Fixes: https://github.com/util-linux/util-linux/issues/3474
|
|
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
(cherry picked from commit 7dbfe31a83f45d5aef2b508697e9511c569ffbc8)
|
|
---
|
|
libmount/src/context.c | 3 ---
|
|
sys-utils/mount.8.adoc | 2 +-
|
|
2 files changed, 1 insertion(+), 4 deletions(-)
|
|
|
|
diff --git a/libmount/src/context.c b/libmount/src/context.c
|
|
index 0323cb23d34..15a8ad3bbd0 100644
|
|
--- a/libmount/src/context.c
|
|
+++ b/libmount/src/context.c
|
|
@@ -530,9 +530,6 @@ int mnt_context_is_xnocanonicalize(
|
|
assert(cxt);
|
|
assert(type);
|
|
|
|
- if (mnt_context_is_nocanonicalize(cxt))
|
|
- return 1;
|
|
-
|
|
ol = mnt_context_get_optlist(cxt);
|
|
if (!ol)
|
|
return 0;
|
|
diff --git a/sys-utils/mount.8.adoc b/sys-utils/mount.8.adoc
|
|
index 4f23f8d1f0e..5103b91c578 100644
|
|
--- a/sys-utils/mount.8.adoc
|
|
+++ b/sys-utils/mount.8.adoc
|
|
@@ -756,7 +756,7 @@ Allow to make a target directory (mountpoint) if it does not exist yet. The opti
|
|
*X-mount.nocanonicalize*[**=**_type_]::
|
|
Allows disabling of canonicalization for mount source and target paths. By default, the `mount` command resolves all paths to their absolute paths without symlinks. However, this behavior may not be desired in certain situations, such as when binding a mount over a symlink, or a symlink over a directory or another symlink. The optional argument _type_ can be either "source" or "target" (mountpoint). If no _type_ is specified, then canonicalization is disabled for both types. This mount option does not affect the conversion of source tags (e.g. LABEL= or UUID=) and fstab processing.
|
|
+
|
|
-The command line option *--no-canonicalize* overrides this mount option and affects all path and tag conversions in all situations, but it does not modify flags for open_tree syscalls.
|
|
+The command-line option *--no-canonicalize* overrides this mount option and affects all path and tag conversions in all situations, but for backward compatibility, it does not modify open_tree syscall flags and does not allow the bind-mount over a symlink use case.
|
|
+
|
|
Note that *mount*(8) still sanitizes and canonicalizes the source and target paths specified on the command line by non-root users, regardless of the X-mount.nocanonicalize setting.
|
|
|