chiark / gitweb /
shutdown: drop last referral to mp->read_only
[elogind.git] / src / umount.c
index 4842d403aeac8eea11b363c75eb185144f1d9c2c..468eb715d65bb142bc81cbb3fae07dfb8247fa0e 100644 (file)
@@ -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++;
                 }