mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-27 14:03:43 +03:00
umount: log failed umounts only once at the end
This commit is contained in:
parent
6f7f51f793
commit
31657718f5
@ -403,7 +403,7 @@ static int delete_dm(dev_t devnum) {
|
|||||||
return r >= 0 ? 0 : -errno;
|
return r >= 0 ? 0 : -errno;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mount_points_list_umount(MountPoint **head, bool *changed) {
|
static int mount_points_list_umount(MountPoint **head, bool *changed, bool log_error) {
|
||||||
MountPoint *m, *n;
|
MountPoint *m, *n;
|
||||||
int n_failed = 0;
|
int n_failed = 0;
|
||||||
|
|
||||||
@ -422,7 +422,7 @@ static int mount_points_list_umount(MountPoint **head, bool *changed) {
|
|||||||
*changed = true;
|
*changed = true;
|
||||||
|
|
||||||
mount_point_free(head, m);
|
mount_point_free(head, m);
|
||||||
} else {
|
} else if (log_error) {
|
||||||
log_warning("Could not unmount %s: %m", m->path);
|
log_warning("Could not unmount %s: %m", m->path);
|
||||||
n_failed++;
|
n_failed++;
|
||||||
}
|
}
|
||||||
@ -565,10 +565,12 @@ int umount_all(bool *changed) {
|
|||||||
/* retry umount, until nothing can be umounted anymore */
|
/* retry umount, until nothing can be umounted anymore */
|
||||||
do {
|
do {
|
||||||
umount_changed = false;
|
umount_changed = false;
|
||||||
r = mount_points_list_umount(&mp_list_head, &umount_changed);
|
r = mount_points_list_umount(&mp_list_head, &umount_changed, false);
|
||||||
if (umount_changed)
|
if (umount_changed)
|
||||||
*changed = true;
|
*changed = true;
|
||||||
} while(umount_changed);
|
} while(umount_changed);
|
||||||
|
/* umount one more time with logging enabled */
|
||||||
|
r = mount_points_list_umount(&mp_list_head, &umount_changed, true);
|
||||||
if (r <= 0)
|
if (r <= 0)
|
||||||
goto end;
|
goto end;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user