Together with fidencio I tracked down the bug which caused / *not* to be remounted ro on shutdown.
The relevant code is in src/umount.c 2010/10/7 <[email protected]>: > +int umount_all(void) { > + int r; > + LIST_HEAD(MountPoint, mp_list_head); > + > + LIST_HEAD_INIT(MountPoint, mp_list_head); > + > + r = mount_points_list_get(&mp_list_head); > + if (r < 0) > + goto end; > + > + r = mount_points_list_umount(&mp_list_head); > + if (r <= 0) > + goto end; r is the number of mount points which failed to be unmounted. We always skip / in mount_points_list_umount though, I.e. if there is no failed unmount attempt, we will never try to remount / ro. Maybe we should just call mount_points_list_remount_read_only unconditionally. or increment the failed counter in mount_points_list_umount if we skip "/" +static int mount_points_list_umount(MountPoint **mount_point_list_head) { + MountPoint *mp, *mp_next; + int failed = 0; + + LIST_FOREACH_SAFE(mount_point, mp, mp_next, *mount_point_list_head) { + if (streq(mp->path, "/")) + continue; ^ add failed++ to make sure / is remounted-ro? -- Why is it that all of the instruments seeking intelligent life in the universe are pointed away from Earth? _______________________________________________ systemd-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/systemd-devel
