mirror of
https://github.com/ostreedev/ostree.git
synced 2025-03-14 04:59:00 +03:00
lib/repo-finder-mount: Ignore mounts which have a ‘system’ file system
For example, tmpfs or a cgroup file system. This is basically an optimisation of the list of file systems we check for repositories, since we would never expect any of these file systems to be capable of containing a repository. Depends on the new API from https://bugzilla.gnome.org/show_bug.cgi?id=788927. Signed-off-by: Philip Withnall <withnall@endlessm.com> Closes: #1307 Approved by: cgwalters
This commit is contained in:
parent
d76840d0c1
commit
0760ce1281
@ -23,6 +23,7 @@
|
||||
#include "config.h"
|
||||
|
||||
#include <gio/gio.h>
|
||||
#include <gio/gunixmounts.h>
|
||||
#include <glib.h>
|
||||
#include <glib-object.h>
|
||||
#include <libglnx.h>
|
||||
@ -355,6 +356,23 @@ ostree_repo_finder_mount_resolve_async (OstreeRepoFinder *finde
|
||||
continue;
|
||||
}
|
||||
|
||||
#if GLIB_CHECK_VERSION(2, 55, 0)
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS /* remove once GLIB_VERSION_MAX_ALLOWED ≥ 2.56 */
|
||||
g_autoptr(GUnixMountEntry) mount_entry = g_unix_mount_at (mount_root_path, NULL);
|
||||
|
||||
if (mount_entry != NULL &&
|
||||
(g_unix_is_system_fs_type (g_unix_mount_get_fs_type (mount_entry)) ||
|
||||
g_unix_is_system_device_path (g_unix_mount_get_device_path (mount_entry))))
|
||||
{
|
||||
g_debug ("Ignoring mount ‘%s’ as its file system type (%s) or device "
|
||||
"path (%s) indicate it’s a system mount.",
|
||||
mount_name, g_unix_mount_get_fs_type (mount_entry),
|
||||
g_unix_mount_get_device_path (mount_entry));
|
||||
continue;
|
||||
}
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
#endif /* GLib 2.56.0 */
|
||||
|
||||
/* stat() the mount root so we can later check whether the resolved
|
||||
* repositories for individual refs are on the same device (to avoid the
|
||||
* symlinks for them pointing outside the mount root). */
|
||||
|
Loading…
x
Reference in New Issue
Block a user