From 0be7252a9227bf5f37d04d12c959cd317c0a0a18 Mon Sep 17 00:00:00 2001
From: "He, Xinzhe" <xzhe@linx-info.com>
Date: Wed, 12 Mar 2025 20:33:10 +0800
Subject: [PATCH] mount-fix-use-option-owner-mount-failed

Signed-off-by: He, Xinzhe <xzhe@linx-info.com>
---
 libmount/src/context_mount.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/libmount/src/context_mount.c b/libmount/src/context_mount.c
index 50e4a62..4eaeb31 100644
--- a/libmount/src/context_mount.c
+++ b/libmount/src/context_mount.c
@@ -202,10 +202,6 @@ static int evaluate_permissions(struct libmnt_context *cxt)
 		 *
 		 * The old deprecated way is to use mnt_optstr_get_flags().
 		 */
-		if (user_flags & (MNT_MS_OWNER | MNT_MS_GROUP))
-			rc = mnt_optlist_remove_flags(ol,
-					MNT_MS_OWNER | MNT_MS_GROUP, cxt->map_userspace);
-
 		if (!rc && (user_flags & MNT_MS_OWNER))
 			rc = mnt_optlist_insert_flags(ol,
 					MS_OWNERSECURE, cxt->map_linux,
@@ -226,6 +222,10 @@ static int evaluate_permissions(struct libmnt_context *cxt)
 			rc = mnt_optlist_insert_flags(ol, MS_SECURE, cxt->map_linux,
 					MNT_MS_USERS, cxt->map_userspace);
 
+		if (user_flags & (MNT_MS_OWNER | MNT_MS_GROUP))
+			rc = mnt_optlist_remove_flags(ol,
+					MNT_MS_OWNER | MNT_MS_GROUP, cxt->map_userspace);
+
 		DBG(CXT, ul_debugobj(cxt, "perms: superuser [rc=%d]", rc));
 		if (rc)
 			return rc;
-- 
2.43.0

