[systemd-devel] [systemd-commits] src/shared

Lennart Poettering lennart at poettering.net
Thu Nov 6 06:30:39 PST 2014


On Thu, 06.11.14 06:28, Harald Hoyer (harald at kemper.freedesktop.org) wrote:

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

I think a comment like this would be really good in the code itself, I
think. It's a good idea to explicitly clarify when we cast errors away
I figure.

>     
>     base_filesystem_create() should have logged, what went wrong.
> 
> diff --git a/src/shared/switch-root.c b/src/shared/switch-root.c
> index bac0e5c..1a558b8 100644
> --- a/src/shared/switch-root.c
> +++ b/src/shared/switch-root.c
> @@ -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);
> 
> _______________________________________________
> systemd-commits mailing list
> systemd-commits at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-commits


Lennart

-- 
Lennart Poettering, Red Hat


More information about the systemd-devel mailing list