Skip to content

Commit

Permalink
Pre LXD 5.0.4 changes (5.0-candidate) (canonical#577)
Browse files Browse the repository at this point in the history
  • Loading branch information
tomponline authored Oct 22, 2024
2 parents b10926f + 22aaef0 commit 280bdce
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 12 deletions.
23 changes: 15 additions & 8 deletions shmounts/setup-shmounts.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,12 @@ int mkdir_p(const char *dir, mode_t mode)
return 0;
}

__attribute__((noreturn))
static void die(const char *s) {
perror(s);
exit(1);
}

int setup_ns() {
int wstatus;
ssize_t ret;
Expand Down Expand Up @@ -94,40 +100,41 @@ int setup_ns() {
ret = lxc_read_nointr(pipe_fds[0], nspath, 1);
close(pipe_fds[0]);
if (ret < 0) {
return -1;
die("cannot read from pipe");
}

// Create the mountpoint
if (mkdir("/var/snap/lxd/common/ns", 0700) < 0 && errno != EEXIST) {
return -1;
die("cannot mkdir /var/snap/lxd/common/ns");
}

// Mount a tmpfs
if (mount("tmpfs", "/var/snap/lxd/common/ns", "tmpfs", 0, "size=1M,mode=0700") < 0) {
return -1;
die("cannot mount tmpfs on /var/snap/lxd/common/ns");
}

// Mark the tmpfs mount as MS_PRIVATE
if (mount("none", "/var/snap/lxd/common/ns", NULL, MS_REC|MS_PRIVATE, NULL) < 0) {
return -1;
die("cannot change propagation on /var/snap/lxd/common/ns");
}

// Store reference to the mntns
if (snprintf(nspath, PATH_MAX, "/proc/%u/ns/mnt", (unsigned)getppid()) < 0) {
return -1;
die("cannot capture reference to parent's mount ns");
}

fd = open("/var/snap/lxd/common/ns/shmounts", O_CREAT | O_RDWR, 0600);
if (fd < 0) {
return -1;
die("cannot open /var/snap/lxd/common/ns/shmounts");
}
close(fd);

if (mount(nspath, "/var/snap/lxd/common/ns/shmounts", NULL, MS_BIND, NULL) < 0) {
return -1;
die("cannot bind mount ns to /var/snap/lxd/common/ns/shmounts");
}

return 0;
/* the child is done */
exit(0);
}

close(pipe_fds[0]);
Expand Down
8 changes: 4 additions & 4 deletions snapcraft.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1331,7 +1331,7 @@ parts:
build-attributes: [core22-step-dependencies]
source: https://github.com/canonical/lxd
source-type: git
source-commit: 74f9b301a8e82d5a546a29aae8aed42637124512 # pre lxd-5.0.4
source-commit: 2d43282f8a98e30fee355b66c8d719ef52bb8ada # pre lxd-5.0.4
after:
- lxc
- dqlite
Expand All @@ -1341,7 +1341,7 @@ parts:
- libudev-dev
- pkg-config
build-snaps:
- go/1.22/stable
- go/1.23/stable
stage-packages:
- acl
- attr
Expand Down Expand Up @@ -1433,7 +1433,7 @@ parts:
- lxd
- sqlite
build-snaps:
- go/1.22/stable
- go/1.23/stable
plugin: nil
override-pull: |
snapcraftctl pull
Expand Down Expand Up @@ -1499,7 +1499,7 @@ parts:
build-attributes: [core22-step-dependencies]
source: snap-query/
build-snaps:
- go/1.22/stable
- go/1.23/stable
plugin: nil
override-build: |
set -ex
Expand Down

0 comments on commit 280bdce

Please sign in to comment.