X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fumount.c;h=a5a215b2b55847aff7d6870ea9fa96b868169c45;hb=7c49259fc8f63ade6cb212a43477d7030aaaf423;hp=488e1e4a4d84941c2887ed64f1cb5922b5334705;hpb=146de8175e11c877908f20f8ed1b5a3805455c0a;p=elogind.git diff --git a/src/core/umount.c b/src/core/umount.c index 488e1e4a4..a5a215b2b 100644 --- a/src/core/umount.c +++ b/src/core/umount.c @@ -32,12 +32,12 @@ #include "list.h" #include "mount-setup.h" #include "umount.h" +#include "path-util.h" #include "util.h" typedef struct MountPoint { char *path; dev_t devnum; - bool skip_ro; LIST_FIELDS (struct MountPoint, mount_point); } MountPoint; @@ -72,8 +72,6 @@ static int mount_points_list_get(MountPoint **head) { for (i = 1;; i++) { int k; MountPoint *m; - char *root; - bool skip_ro; path = p = NULL; @@ -81,7 +79,7 @@ static int mount_points_list_get(MountPoint **head) { "%*s " /* (1) mount id */ "%*s " /* (2) parent id */ "%*s " /* (3) major:minor */ - "%ms " /* (4) root */ + "%*s " /* (4) root */ "%ms " /* (5) mount point */ "%*s" /* (6) mount options */ "%*[^-]" /* (7) optional fields */ @@ -90,8 +88,7 @@ static int mount_points_list_get(MountPoint **head) { "%*s" /* (10) mount source */ "%*s" /* (11) mount options 2 */ "%*[^\n]", /* some rubbish at the end */ - &root, - &path)) != 2) { + &path)) != 1) { if (k == EOF) break; @@ -101,11 +98,6 @@ static int mount_points_list_get(MountPoint **head) { continue; } - /* If we encounter a bind mount, don't try to remount - * the source dir too early */ - skip_ro = !streq(root, "/"); - free(root); - p = cunescape(path); free(path); @@ -131,7 +123,6 @@ static int mount_points_list_get(MountPoint **head) { } m->path = p; - m->skip_ro = skip_ro; LIST_PREPEND(MountPoint, mount_point, *head, m); } @@ -448,11 +439,6 @@ static int mount_points_list_remount_read_only(MountPoint **head, bool *changed) LIST_FOREACH_SAFE(mount_point, m, n, *head) { - if (m->skip_ro) { - n_failed++; - continue; - } - /* Trying to remount read-only */ if (mount(NULL, m->path, NULL, MS_MGC_VAL|MS_REMOUNT|MS_RDONLY, NULL) == 0) { if (changed)