When we remove an existing inode in order to create a symlink we need to
create the symlink via a pinned directory again, instead of using an
absolute path, otherwise this will not work in the --root= case.
Let's fix this, and switch this over to symlinkat_atomic_full().
if (r < 0)
return log_error_errno(r, "rm -rf %s failed: %m", i->path);
- mac_selinux_create_file_prepare(i->path, S_IFLNK);
- r = RET_NERRNO(symlinkat(i->argument, pfd, i->path));
- mac_selinux_create_file_clear();
+ r = symlinkat_atomic_full(i->argument, pfd, bn, SYMLINK_LABEL);
}
if (r < 0)
return log_error_errno(r, "symlink(%s, %s) failed: %m", i->argument, i->path);