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