X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fumount.c;h=468eb715d65bb142bc81cbb3fae07dfb8247fa0e;hp=4842d403aeac8eea11b363c75eb185144f1d9c2c;hb=83d8b7c1798ac66212ed34bc823df86515df9867;hpb=e3478379751fda30316204c68112b5a2b9ffd5a7 diff --git a/src/umount.c b/src/umount.c index 4842d403a..468eb715d 100644 --- a/src/umount.c +++ b/src/umount.c @@ -35,7 +35,6 @@ typedef struct MountPoint { char *path; - bool read_only; LIST_FIELDS (struct MountPoint, mount_point); } MountPoint; @@ -46,8 +45,6 @@ static MountPoint *mount_point_alloc(char *path) { return NULL; mp->path = path; - mp->read_only = false; - return mp; } @@ -270,7 +267,7 @@ static int delete_loopback(const char *device) { ioctl(fd, LOOP_CLR_FD, 0); r = errno; - close_nointr(fd); + close_nointr_nofail(fd); if (r == ENXIO) /* not bound, so no error */ r = 0; @@ -303,14 +300,10 @@ static int mount_points_list_remount_read_only(MountPoint **mount_point_list_hea int failed = 0; LIST_FOREACH_SAFE(mount_point, mp, mp_next, *mount_point_list_head) { - if (mp->read_only) - continue; - /* Trying to remount read-only */ - if (mount(NULL, mp->path, NULL, MS_MGC_VAL|MS_REMOUNT|MS_RDONLY, NULL) == 0) { - mp->read_only = true; + if (mount(NULL, mp->path, NULL, MS_MGC_VAL|MS_REMOUNT|MS_RDONLY, NULL) == 0) mount_point_remove_and_free(mp, mount_point_list_head); - } else { + else { log_debug("Could not remount as read-only %s: %m", mp->path); failed++; }