2010/10/24 Gustavo Sverzut Barbieri <[email protected]>:
> On Sun, Oct 24, 2010 at 12:41 PM, Michael Biebl <[email protected]> wrote:
>> 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 "/"
>
> I guess either we run it unconditionally or we just call the remount
> of / to "ro" explicitly if r == 0 (clear I guess)
>
>
>
>> +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?
>
> it would be a bit misleading.

Well, not really. Skipping / is just an optimisation as we know that
unmounting it would fail anyway.




-- 
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

Reply via email to