diff options
Diffstat (limited to 'sys-apps/util-linux/files')
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) |