mirror of
https://github.com/systemd/systemd.git
synced 2026-08-04 23:20:32 +00:00
mount-util: handle remount failures gracefully if flags already match
In bind_remount_one_with_mountinfo() let's handle mount failures gracefully if the flags already match anyway. This isn't perfect, since it mixes up superblock and mount point flags, but it's close enough.
This commit is contained in:
@@ -387,8 +387,16 @@ int bind_remount_one_with_mountinfo(
|
||||
}
|
||||
|
||||
r = mount_nofollow(NULL, path, NULL, ((flags & ~flags_mask)|MS_BIND|MS_REMOUNT|new_flags) & ~MS_RELATIME, NULL);
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (r < 0) {
|
||||
if (((flags ^ new_flags) & flags_mask & ~MS_RELATIME) != 0) /* Ignore MS_RELATIME again,
|
||||
* since kernel adds it in
|
||||
* everywhere, because it's the
|
||||
* default. */
|
||||
return r;
|
||||
|
||||
/* Let's handle redundant remounts gracefully */
|
||||
log_debug_errno(r, "Failed to remount '%s' but flags already match what we want, ignoring: %m", path);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user