mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-10 12:55:48 +01:00
Merge branch 'wip/oholy/bind-mounts-stable' into 'glib-2-58'
gunixmounts: Filter out mounts with device path that was repeated See merge request GNOME/glib!365
This commit is contained in:
commit
1161ac3bdb
@ -461,6 +461,18 @@ create_unix_mount_point (const char *device_path,
|
|||||||
*/
|
*/
|
||||||
#define PROC_MOUNTINFO_PATH "/proc/self/mountinfo"
|
#define PROC_MOUNTINFO_PATH "/proc/self/mountinfo"
|
||||||
|
|
||||||
|
static int
|
||||||
|
uniq_fs_source_cmp (struct libmnt_table *table G_GNUC_UNUSED,
|
||||||
|
struct libmnt_fs *a,
|
||||||
|
struct libmnt_fs *b)
|
||||||
|
{
|
||||||
|
if (mnt_fs_is_pseudofs (a) || mnt_fs_is_netfs (a) ||
|
||||||
|
mnt_fs_is_pseudofs (b) || mnt_fs_is_netfs (b))
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
return !mnt_fs_streq_srcpath (a, mnt_fs_get_srcpath (b));
|
||||||
|
}
|
||||||
|
|
||||||
static GList *
|
static GList *
|
||||||
_g_get_unix_mounts (void)
|
_g_get_unix_mounts (void)
|
||||||
{
|
{
|
||||||
@ -482,6 +494,11 @@ _g_get_unix_mounts (void)
|
|||||||
unsigned long mount_flags = 0;
|
unsigned long mount_flags = 0;
|
||||||
gboolean is_read_only = FALSE;
|
gboolean is_read_only = FALSE;
|
||||||
|
|
||||||
|
/* Use only the first mount for device, see comment from _g_get_unix_mounts
|
||||||
|
* in #else branch.
|
||||||
|
*/
|
||||||
|
mnt_table_uniq_fs (table, MNT_UNIQ_FORWARD, uniq_fs_source_cmp);
|
||||||
|
|
||||||
device_path = mnt_fs_get_source (fs);
|
device_path = mnt_fs_get_source (fs);
|
||||||
if (g_strcmp0 (device_path, "/dev/root") == 0)
|
if (g_strcmp0 (device_path, "/dev/root") == 0)
|
||||||
device_path = _resolve_dev_root ();
|
device_path = _resolve_dev_root ();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user