mirror of
https://github.com/systemd/systemd.git
synced 2024-11-02 10:51:20 +03:00
switch_root: do not fail, if base_filesystem_create() failed
Not all switch roots are like base_filesystem_create() wants them to look like. They might even boot, if they are RO and don't have the FS layout. Just ignore the error and switch_root nevertheless. base_filesystem_create() should have logged, what went wrong.
This commit is contained in:
parent
2b671e9560
commit
6d0f91bf55
@ -47,7 +47,6 @@ int switch_root(const char *new_root, const char *oldroot, bool detach_oldroot,
|
|||||||
struct stat new_root_stat;
|
struct stat new_root_stat;
|
||||||
bool old_root_remove;
|
bool old_root_remove;
|
||||||
const char *i, *temporary_old_root;
|
const char *i, *temporary_old_root;
|
||||||
int r;
|
|
||||||
|
|
||||||
if (path_equal(new_root, "/"))
|
if (path_equal(new_root, "/"))
|
||||||
return 0;
|
return 0;
|
||||||
@ -103,11 +102,7 @@ int switch_root(const char *new_root, const char *oldroot, bool detach_oldroot,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
r = base_filesystem_create(new_root);
|
(void) base_filesystem_create(new_root);
|
||||||
if (r < 0) {
|
|
||||||
log_error("Failed to create the base filesystem: %s", strerror(-r));
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (chdir(new_root) < 0) {
|
if (chdir(new_root) < 0) {
|
||||||
log_error("Failed to change directory to %s: %m", new_root);
|
log_error("Failed to change directory to %s: %m", new_root);
|
||||||
|
Loading…
Reference in New Issue
Block a user