switch_root: do not fail, if base_filesystem_create() failed
authorHarald Hoyer <harald@redhat.com>
Wed, 3 Sep 2014 11:31:25 +0000 (13:31 +0200)
committerHarald Hoyer <harald@redhat.com>
Thu, 6 Nov 2014 14:28:42 +0000 (15:28 +0100)
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.

src/shared/switch-root.c

index bac0e5c..1a558b8 100644 (file)
@@ -47,7 +47,6 @@ int switch_root(const char *new_root, const char *oldroot, bool detach_oldroot,
         struct stat new_root_stat;
         bool old_root_remove;
         const char *i, *temporary_old_root;
-        int r;
 
         if (path_equal(new_root, "/"))
                 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);
-        if (r < 0) {
-                log_error("Failed to create the base filesystem: %s", strerror(-r));
-                return r;
-        }
+        (void) base_filesystem_create(new_root);
 
         if (chdir(new_root) < 0) {
                 log_error("Failed to change directory to %s: %m", new_root);