1b5975d6bSopenharmony_ciFrom 02d0d6497b92d05d1145d1077654ad2453938b6c Mon Sep 17 00:00:00 2001
2b5975d6bSopenharmony_ciFrom: Rozhuk Ivan <rozhuk.im@gmail.com>
3b5975d6bSopenharmony_ciDate: Sat, 25 Jun 2022 19:01:30 +0300
4b5975d6bSopenharmony_ciSubject: [PATCH] [PATCH] _g_get_unix_mount_points(): reduce syscalls inside
5b5975d6bSopenharmony_ci loop
6b5975d6bSopenharmony_ci
7b5975d6bSopenharmony_ciConflict:NA
8b5975d6bSopenharmony_ciReference:https://gitlab.gnome.org/GNOME/glib/-/commit/02d0d6497b92d05d1145d1077654ad2453938b6c
9b5975d6bSopenharmony_ci
10b5975d6bSopenharmony_ci---
11b5975d6bSopenharmony_ci gio/gunixmounts.c | 16 ++++++++--------
12b5975d6bSopenharmony_ci 1 file changed, 8 insertions(+), 8 deletions(-)
13b5975d6bSopenharmony_cidiff --git a/gio/gunixmounts.c b/gio/gunixmounts.c
14b5975d6bSopenharmony_ciindex ba08245..92ab163 100644
15b5975d6bSopenharmony_ci--- a/gio/gunixmounts.c
16b5975d6bSopenharmony_ci+++ b/gio/gunixmounts.c
17b5975d6bSopenharmony_ci@@ -1414,6 +1414,7 @@ _g_get_unix_mount_points (void)
18b5975d6bSopenharmony_ci   GList *return_list = NULL;
19b5975d6bSopenharmony_ci   G_LOCK_DEFINE_STATIC (fsent);
20b5975d6bSopenharmony_ci #ifdef HAVE_SYS_SYSCTL_H
21b5975d6bSopenharmony_ci+  uid_t uid = getuid ();
22b5975d6bSopenharmony_ci   int usermnt = 0;
23b5975d6bSopenharmony_ci   struct stat sb;
24b5975d6bSopenharmony_ci #endif
25b5975d6bSopenharmony_ci@@ -1466,14 +1467,13 @@ _g_get_unix_mount_points (void)
26b5975d6bSopenharmony_ci 
27b5975d6bSopenharmony_ci #ifdef HAVE_SYS_SYSCTL_H
28b5975d6bSopenharmony_ci       if (usermnt != 0)
29b5975d6bSopenharmony_ci-	{
30b5975d6bSopenharmony_ci-	  uid_t uid = getuid ();
31b5975d6bSopenharmony_ci-	  if (stat (fstab->fs_file, &sb) == 0)
32b5975d6bSopenharmony_ci-	    {
33b5975d6bSopenharmony_ci-	      if (uid == 0 || sb.st_uid == uid)
34b5975d6bSopenharmony_ci-		is_user_mountable = TRUE;
35b5975d6bSopenharmony_ci-	    }
36b5975d6bSopenharmony_ci-	}
37b5975d6bSopenharmony_ci+        {
38b5975d6bSopenharmony_ci+          if (uid == 0 ||
39b5975d6bSopenharmony_ci+              (stat (fstab->fs_file, &sb) == 0 && sb.st_uid == uid))
40b5975d6bSopenharmony_ci+            {
41b5975d6bSopenharmony_ci+              is_user_mountable = TRUE;
42b5975d6bSopenharmony_ci+            }
43b5975d6bSopenharmony_ci+        }
44b5975d6bSopenharmony_ci #endif
45b5975d6bSopenharmony_ci 
46b5975d6bSopenharmony_ci       mount_point = create_unix_mount_point (fstab->fs_spec,
47