From: Alban Crequy <[email protected]>
---
src/nspawn/nspawn.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
index 3fce3ad..db57b24 100644
--- a/src/nspawn/nspawn.c
+++ b/src/nspawn/nspawn.c
@@ -911,8 +911,7 @@ static int mount_binds(const char *dest, char **l, bool ro)
{
return -errno;
}
- /* Create the mount point, but be conservative -- refuse to
create block
- * and char devices. */
+ /* Create the mount point */
if (S_ISDIR(source_st.st_mode)) {
r = mkdir_label(where, 0755);
if (r < 0 && errno != EEXIST)
@@ -929,6 +928,10 @@ static int mount_binds(const char *dest, char **l, bool
ro) {
r = touch(where);
if (r < 0)
return log_error_errno(r, "Failed to create
mount point %s: %m", where);
+ } else if (S_ISCHR(source_st.st_mode) ||
!S_ISBLK(source_st.st_mode)) {
+ r = mknod(where, source_st.st_mode, source_st.st_rdev)
< 0;
+ if (r < 0 && errno != EEXIST)
+ return log_error_errno(errno, "Failed to
create mount point %s: %m", where);
} else {
log_error("Refusing to create mountpoint for file:
%s", *x);
return -ENOTSUP;
--
2.1.4
_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel