summaryrefslogtreecommitdiff
path: root/sys-apps/util-linux/files
diff options
context:
space:
mode:
Diffstat (limited to 'sys-apps/util-linux/files')
-rw-r--r--sys-apps/util-linux/files/util-linux-2.39-check-for-mount_setattr.patch98
-rw-r--r--sys-apps/util-linux/files/util-linux-2.39-mount-dont-call-hooks.patch79
-rw-r--r--sys-apps/util-linux/files/util-linux-2.39-mount-parse-options-user.patch46
-rw-r--r--sys-apps/util-linux/files/util-linux-2.39-tests-for-mount_setattr.patch13
4 files changed, 0 insertions, 236 deletions
diff --git a/sys-apps/util-linux/files/util-linux-2.39-check-for-mount_setattr.patch b/sys-apps/util-linux/files/util-linux-2.39-check-for-mount_setattr.patch
deleted file mode 100644
index c1eb3748f782..000000000000
--- a/sys-apps/util-linux/files/util-linux-2.39-check-for-mount_setattr.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-https://bugs.gentoo.org/906797
-https://github.com/util-linux/util-linux/pull/2248
-
-From 1bd85b64632280d6bf0e86b4ff29da8b19321c5f Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <thomas@t-8ch.de>
-Date: Sat, 20 May 2023 06:38:20 +0200
-Subject: [PATCH] libmount: check for availability of mount_setattr
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-If mount_setattr is not available but needed fall back to the legacy
-mount API.
-
-Fixes #2247
-
-Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
---- a/libmount/src/hook_mount.c
-+++ b/libmount/src/hook_mount.c
-@@ -510,6 +510,15 @@ static inline int fsopen_is_supported(void)
- return rc;
- }
-
-+static inline int mount_setattr_is_supported(void)
-+{
-+ int rc;
-+
-+ errno = 0;
-+ rc = mount_setattr(-1, NULL, 0, NULL, 0);
-+ return !(rc == -1 && errno == ENOSYS);
-+}
-+
- /*
- * open_tree() and fsopen()
- */
-@@ -675,9 +684,14 @@ static int hook_prepare(struct libmnt_context *cxt,
- /* call mount_setattr() */
- if (!rc
- && cxt->helper == NULL
-- && (set != 0 || clr != 0 || (flags & MS_REMOUNT)))
-+ && (set != 0 || clr != 0 || (flags & MS_REMOUNT))) {
-+ if (!mount_setattr_is_supported()) {
-+ hookset_deinit(cxt, hs);
-+ return 1;
-+ }
- rc = mnt_context_append_hook(cxt, hs, MNT_STAGE_MOUNT, NULL,
- hook_set_vfsflags);
-+ }
-
- /* call move_mount() to attach target */
- if (!rc
-@@ -688,9 +702,14 @@ static int hook_prepare(struct libmnt_context *cxt,
- hook_attach_target);
-
- /* set propagation (has to be attached to VFS) */
-- if (!rc && mnt_optlist_get_propagation(ol))
-+ if (!rc && mnt_optlist_get_propagation(ol)) {
-+ if (!mount_setattr_is_supported()) {
-+ hookset_deinit(cxt, hs);
-+ return 1;
-+ }
- rc = mnt_context_append_hook(cxt, hs, MNT_STAGE_MOUNT_POST, NULL,
- hook_set_propagation);
-+ }
-
- DBG(HOOK, ul_debugobj(hs, "prepare mount done [rc=%d]", rc));
- return rc;
-diff --git a/tests/expected/mount/fallback-mount_setattr b/tests/expected/mount/fallback-mount_setattr
-new file mode 100644
-index 0000000000..3e18ebf09e
---- /dev/null
-+++ b/tests/expected/mount/fallback-mount_setattr
-@@ -0,0 +1 @@
-+private
---- a/tests/ts/mount/fallback
-+++ b/tests/ts/mount/fallback
-@@ -68,5 +68,21 @@ $TS_CMD_UMOUNT $MOUNTPOINT
- ts_finalize_subtest
-
-
-+ts_init_subtest "mount_setattr"
-+"$TS_CMD_MOUNT" "$DEVICE" "$MOUNTPOINT" >> $TS_OUTPUT 2>> $TS_ERRLOG
-+ts_is_mounted $DEVICE || ts_log "Cannot find $DEVICE in /proc/mounts"
-+$TS_HELPER_ENOSYS -s mount_setattr -- \
-+ "$TS_CMD_MOUNT" -o remount,ro "$MOUNTPOINT" \
-+ >> $TS_OUTPUT 2>> $TS_ERRLOG
-+$TS_CMD_FINDMNT --kernel --mountpoint "$MOUNTPOINT" --options "ro" &> /dev/null
-+[ "$?" == "0" ] || ts_die "Cannot find read-only in $MOUNTPOINT in /proc/self/mountinfo"
-+$TS_HELPER_ENOSYS -s mount_setattr -- \
-+ "$TS_CMD_MOUNT" --make-slave "$MOUNTPOINT" \
-+ >> $TS_OUTPUT 2>> $TS_ERRLOG
-+$TS_CMD_FINDMNT -n --kernel --mountpoint "$MOUNTPOINT" -o PROPAGATION >> $TS_OUTPUT
-+$TS_CMD_UMOUNT $MOUNTPOINT
-+ts_finalize_subtest
-+
-+
- ts_finalize
-
diff --git a/sys-apps/util-linux/files/util-linux-2.39-mount-dont-call-hooks.patch b/sys-apps/util-linux/files/util-linux-2.39-mount-dont-call-hooks.patch
deleted file mode 100644
index 96dfb1f2c234..000000000000
--- a/sys-apps/util-linux/files/util-linux-2.39-mount-dont-call-hooks.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-https://github.com/util-linux/util-linux/issues/2267
-https://github.com/storaged-project/libblockdev/pull/889
-https://bugzilla.redhat.com/show_bug.cgi?id=2189241
-https://github.com/util-linux/util-linux/commit/f94a7760ed7ce81389a6059f020238981627a70d
-
-From f94a7760ed7ce81389a6059f020238981627a70d Mon Sep 17 00:00:00 2001
-From: Karel Zak <kzak@redhat.com>
-Date: Thu, 25 May 2023 11:48:24 +0200
-Subject: [PATCH] libmount: don't call hooks after mount.<type> helper
-
-In case more filesystems are specified (or when libmount follows
-/{etc,proc}/filesystems) then the library may try to use and
-initialize the new API because for some filesystems, we need
-exec(/sbin/mount.<type>) and for another fsopen().
-
-The hooks that use the API have to smart and detect that the mount
-operation was done in external /sbin/mount.<type> helper. And in this
-case, the new API file descriptors must be ignored.
-
-The exception is propagation flags, mount(8) can set the flags after
-exec(/sbin/mount.<type>), for example, "mount -t ntfs --make-private".
-
-Fixes: https://github.com/util-linux/util-linux/issues/2267
-Signed-off-by: Karel Zak <kzak@redhat.com>
---- a/libmount/src/context_mount.c
-+++ b/libmount/src/context_mount.c
-@@ -508,6 +508,8 @@ static int do_mount(struct libmnt_context *cxt, const char *try_type)
- assert(cxt->fs);
- assert((cxt->flags & MNT_FL_MOUNTFLAGS_MERGED));
-
-+ mnt_context_reset_status(cxt);
-+
- if (try_type) {
- rc = mnt_context_prepare_helper(cxt, "mount", try_type);
- if (rc)
---- a/libmount/src/hook_mount.c
-+++ b/libmount/src/hook_mount.c
-@@ -239,6 +239,10 @@ static int hook_create_mount(struct libmnt_context *cxt,
- int rc = 0;
-
- assert(cxt);
-+
-+ if (mnt_context_helper_executed(cxt))
-+ return 0;
-+
- assert(cxt->fs);
-
- api = get_sysapi(cxt);
-@@ -309,6 +313,9 @@ static int hook_reconfigure_mount(struct libmnt_context *cxt,
-
- assert(cxt);
-
-+ if (mnt_context_helper_executed(cxt))
-+ return 0;
-+
- api = get_sysapi(cxt);
- assert(api);
- assert(api->fd_tree >= 0);
-@@ -379,6 +386,9 @@ static int hook_set_vfsflags(struct libmnt_context *cxt,
- uint64_t set = 0, clr = 0;
- int rc = 0;
-
-+ if (mnt_context_helper_executed(cxt))
-+ return 0;
-+
- DBG(HOOK, ul_debugobj(hs, "setting VFS flags"));
-
- ol = mnt_context_get_optlist(cxt);
-@@ -471,6 +481,9 @@ static int hook_attach_target(struct libmnt_context *cxt,
- const char *target;
- int rc = 0;
-
-+ if (mnt_context_helper_executed(cxt))
-+ return 0;
-+
- target = mnt_fs_get_target(cxt->fs);
- if (!target)
- return -EINVAL;
-
diff --git a/sys-apps/util-linux/files/util-linux-2.39-mount-parse-options-user.patch b/sys-apps/util-linux/files/util-linux-2.39-mount-parse-options-user.patch
deleted file mode 100644
index e02d02c7f503..000000000000
--- a/sys-apps/util-linux/files/util-linux-2.39-mount-parse-options-user.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-https://bugs.gentoo.org/906797#c4
-https://bugs.gentoo.org/906859
-https://github.com/util-linux/util-linux/issues/2238
-https://github.com/util-linux/util-linux/commit/c0267687fd7b41b00d523d1985182d7eb574effd
-
-From c0267687fd7b41b00d523d1985182d7eb574effd Mon Sep 17 00:00:00 2001
-From: Karel Zak <kzak@redhat.com>
-Date: Mon, 22 May 2023 15:00:25 +0200
-Subject: [PATCH] libmount: fix options prepend/insert and merging
-
- * the order of the new options should not be changed
- (for example prepend "a,b,c" to list with "d" has to generate "a,b,c,d", not "c,b,a,d")
-
- * make sure that options map is defined when merging options
-
-Fixes: https://github.com/util-linux/util-linux/issues/2238
-Signed-off-by: Karel Zak <kzak@redhat.com>
---- a/libmount/src/optlist.c
-+++ b/libmount/src/optlist.c
-@@ -338,6 +338,7 @@ int mnt_optlist_merge_opts(struct libmnt_optlist *ls)
-
- /* remove inverted option */
- else if (opt->ent && x->ent
-+ && opt->map == x->map
- && opt->ent->id == x->ent->id
- && (opt->ent->mask & MNT_INVERT
- || x->ent->mask & MNT_INVERT))
-@@ -520,6 +521,8 @@ static int optlist_add_optstr(struct libmnt_optlist *ls, const char *optstr,
- if (!opt)
- return -ENOMEM;
- opt->src = MNT_OPTSRC_STRING;
-+ if (where)
-+ where = &opt->opts;
- }
-
- optlist_cleanup_cache(ls);
-@@ -622,6 +625,8 @@ static int optlist_add_flags(struct libmnt_optlist *ls, unsigned long flags,
- if (!opt)
- return -ENOMEM;
- opt->src = MNT_OPTSRC_FLAG;
-+ if (where)
-+ where = &opt->opts;
- }
-
- optlist_cleanup_cache(ls);
-
diff --git a/sys-apps/util-linux/files/util-linux-2.39-tests-for-mount_setattr.patch b/sys-apps/util-linux/files/util-linux-2.39-tests-for-mount_setattr.patch
deleted file mode 100644
index 0b0ade4e181c..000000000000
--- a/sys-apps/util-linux/files/util-linux-2.39-tests-for-mount_setattr.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-https://github.com/util-linux/util-linux/pull/2248
-https://bugs.gentoo.org/906797
-
---- a/tests/helpers/test_enosys.c
-+++ b/tests/helpers/test_enosys.c
-@@ -68,6 +68,7 @@ const struct syscall syscalls[] = {
- { "move_mount", __NR_move_mount },
- { "open_tree", __NR_open_tree },
- { "fsopen", __NR_fsopen },
-+ { "mount_setattr", __NR_mount_setattr },
- };
-
- int main(int argc, char **argv)