]> git.proxmox.com Git - mirror_lxcfs.git/log
mirror_lxcfs.git
7 years agobindings: adapt caller_is_in_ancestor()
Christian Brauner [Fri, 5 Aug 2016 22:45:07 +0000 (00:45 +0200)]
bindings: adapt caller_is_in_ancestor()

Signed-off-by: Christian Brauner <cbrauner@suse.de>
7 years agobindings: is_child_cgroup()
Christian Brauner [Fri, 5 Aug 2016 22:34:51 +0000 (00:34 +0200)]
bindings: is_child_cgroup()

Enable is_child_cgroup() to be used with *at() family of functions.

Signed-off-by: Christian Brauner <cbrauner@suse.de>
7 years agobindings: cgfs_get_value(), slurp_file()
Christian Brauner [Fri, 5 Aug 2016 22:27:53 +0000 (00:27 +0200)]
bindings: cgfs_get_value(), slurp_file()

Enable cgfs_get_value() and slurp_file() to be used with *at() family of
functions.

Signed-off-by: Christian Brauner <cbrauner@suse.de>
7 years agobindings: cgfs_iterate_cgroup(), cgfs_get_key()
Christian Brauner [Fri, 5 Aug 2016 17:58:18 +0000 (19:58 +0200)]
bindings: cgfs_iterate_cgroup(), cgfs_get_key()

Enable cgfs_iterate_cgroup(), cgfs_get_key() to be used with *at() family of
functions.

Signed-off-by: Christian Brauner <cbrauner@suse.de>
7 years agobindings: return opened fd for controller
Christian Brauner [Fri, 5 Aug 2016 17:45:46 +0000 (19:45 +0200)]
bindings: return opened fd for controller

find_mounted_controller() now stores the corresponding open file descriptor for
the mount of the controller in the private lxcfs mount namespace in @cfd.

Signed-off-by: Christian Brauner <cbrauner@suse.de>
7 years agolxcfs, bindings: share cgroup info + add clone()
Christian Brauner [Fri, 5 Aug 2016 12:17:15 +0000 (14:17 +0200)]
lxcfs, bindings: share cgroup info + add clone()

- So far lxcfs.c and bindings.{c,h} did not share cgroup information and we
  unnecessarily kept parsing and storing additional information. Let's share it
  instead.
- Add lxcfs_clone() function.
- Mount cgroups in a private mount namespace. We use CLONE_FILES so that file
  descriptors opened via lxcfs_clone() are not copied and hence are valid in
  child and parent.
- For each mounted hierarchy, open a file descriptor and store it in an mmap()ed
  array that is MAP_SHARED between parent and child.

Signed-off-by: Christian Brauner <cbrauner@suse.de>
7 years agolxcfs: add infrastructure to create minimal chroot
Christian Brauner [Wed, 27 Jul 2016 21:43:31 +0000 (23:43 +0200)]
lxcfs: add infrastructure to create minimal chroot

Signed-off-by: Christian Brauner <cbrauner@suse.de>
7 years agolxcfs: order includes
Christian Brauner [Wed, 27 Jul 2016 21:32:31 +0000 (23:32 +0200)]
lxcfs: order includes

Signed-off-by: Christian Brauner <cbrauner@suse.de>
7 years agolxcfs, bindings: small improvements
Christian Brauner [Wed, 27 Jul 2016 21:24:50 +0000 (23:24 +0200)]
lxcfs, bindings: small improvements

- capitalize BASEDIR
- add missing newline to debug output

Signed-off-by: Christian Brauner <cbrauner@suse.de>
7 years agoskip empty entries under /proc/self/cgroup
Christian Brauner [Sat, 9 Jul 2016 11:19:06 +0000 (13:19 +0200)]
skip empty entries under /proc/self/cgroup

If cgroupv2 is enabled either alone or together with legacy hierarchies
/proc/self/cgroup can contain entries of the form:

        0::/

This will cause lxcfs to fail the cgroup mounts because it parses out the empty
string "" and later on passes it to mount(). Let's skip such entries.

Signed-off-by: Christian Brauner <cbrauner@suse.de>
7 years agounder_systemd_user_slice: work right when init is in '/'
Serge Hallyn [Fri, 17 Jun 2016 07:27:45 +0000 (02:27 -0500)]
under_systemd_user_slice: work right when init is in '/'

Signed-off-by: Serge Hallyn <serge@hallyn.com>
7 years agolibpam_cgfs: don't create new path if we are under /user.slice/user-$uid.slice
Serge Hallyn [Sun, 12 Jun 2016 02:39:48 +0000 (21:39 -0500)]
libpam_cgfs: don't create new path if we are under /user.slice/user-$uid.slice

(relative to our init's path)

Closes #117

Signed-off-by: Serge Hallyn <serge@hallyn.com>
7 years agoDon't build pam/ when --with-pamdir=none
Serge Hallyn [Sat, 28 May 2016 05:27:27 +0000 (00:27 -0500)]
Don't build pam/ when --with-pamdir=none

Closes #110

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoMerge pull request #109 from brauner/bugfixes
Serge Hallyn [Mon, 25 Apr 2016 14:36:15 +0000 (09:36 -0500)]
Merge pull request #109 from brauner/bugfixes

bugfixes

8 years agobugfixes
Christian Brauner [Mon, 25 Apr 2016 11:42:45 +0000 (13:42 +0200)]
bugfixes

- Fix do_mount_cgroups(): It previously returned ret uninitialized on failure.
- Quite a few snprintf() call used size_t variables but then checked whether
  size_t < 0. Since size_t is unsigned these checks were always true. Let's use
  ssize_t instead which is signed.
- Use additional ssize_t variable to catch snprintf() error for swap
  calculation and add the value to the final result afterwards instead of
  directly.

Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
8 years agofix cg_access() for controller directories
Serge Hallyn [Wed, 20 Apr 2016 16:25:47 +0000 (11:25 -0500)]
fix cg_access() for controller directories

The previous patch actually didn't handle those, but only
/cgroup itself.

Closes #107

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoaccess: allow rx to controller directories themselves
Serge Hallyn [Tue, 19 Apr 2016 18:30:29 +0000 (13:30 -0500)]
access: allow rx to controller directories themselves

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agodiskstats: revert to only showing devices we've used
Serge Hallyn [Sat, 2 Apr 2016 05:34:57 +0000 (00:34 -0500)]
diskstats: revert to only showing devices we've used

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agodiskstats: use recursive values, and some cleanup
Serge Hallyn [Sat, 2 Apr 2016 05:19:53 +0000 (00:19 -0500)]
diskstats: use recursive values, and some cleanup

Iuse the recursive cgroup values since we certainly want values
for child cgroups included.  Also simplify the code just a bit.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agos390: print the virtualized #cpus in cpuinfo_read
Serge Hallyn [Sat, 2 Apr 2016 03:52:07 +0000 (22:52 -0500)]
s390: print the virtualized #cpus in cpuinfo_read

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agofix proc_cpuinfo_read for s390x
Serge Hallyn [Sat, 2 Apr 2016 00:50:11 +0000 (19:50 -0500)]
fix proc_cpuinfo_read for s390x

cpuinfo is different on s390x.  On amd64 there is a set of lines
per processor, begging with 'processor   : n'.  On s390x, the first
line identifies the vendor, then there are general lines which apply
to all containers, finally the processors show up one per line.

So handle these differently.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agotag final 2.0.0 release lxcfs-2.0.0
Serge Hallyn [Thu, 31 Mar 2016 18:09:32 +0000 (13:09 -0500)]
tag final 2.0.0 release

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoconfigure.ac: release 2.0.0.rc9 lxcfs-2.0.0.rc9
Serge Hallyn [Tue, 29 Mar 2016 18:44:02 +0000 (13:44 -0500)]
configure.ac: release 2.0.0.rc9

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agofuse file info release: guard against multiple calls
Serge Hallyn [Tue, 29 Mar 2016 18:35:01 +0000 (13:35 -0500)]
fuse file info release: guard against multiple calls

While fuse clearly calls the release info helpers under pthread
lock, it's not as clear that it may not be called more than once.
Null everything after we free it.

The hope is that this will fix the occasional mysterious crashes
on very heavily used (50 containers nonstop) servers.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoMerge pull request #104 from stgraber/master
Serge Hallyn [Tue, 22 Mar 2016 07:51:42 +0000 (00:51 -0700)]
Merge pull request #104 from stgraber/master

hook: Fix typo in previous fix

8 years agohook: Fix typo in previous fix
Stéphane Graber [Tue, 22 Mar 2016 07:46:59 +0000 (03:46 -0400)]
hook: Fix typo in previous fix

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
8 years agoMerge pull request #103 from stgraber/master
Serge Hallyn [Tue, 22 Mar 2016 07:34:27 +0000 (00:34 -0700)]
Merge pull request #103 from stgraber/master

hook: Don't fail when root mountpoint is a symlink

8 years agohook: Don't fail when root mountpoint is a symlink
Stéphane Graber [Tue, 22 Mar 2016 07:24:17 +0000 (03:24 -0400)]
hook: Don't fail when root mountpoint is a symlink

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
8 years agoproc_access: return EACESS not EPERM
Serge Hallyn [Tue, 22 Mar 2016 04:06:33 +0000 (21:06 -0700)]
proc_access: return EACESS not EPERM

(per the manpage)

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agorelease 2.0.0.rc8 lxcfs-2.0.0.rc8
Serge Hallyn [Tue, 22 Mar 2016 04:00:42 +0000 (21:00 -0700)]
release 2.0.0.rc8

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoMerge pull request #102 from hallyn/2016-03-21/access
Serge Hallyn [Tue, 22 Mar 2016 04:00:01 +0000 (21:00 -0700)]
Merge pull request #102 from hallyn/2016-03-21/access

implement access(2)

8 years agoremove obsolete comments
Serge Hallyn [Tue, 22 Mar 2016 03:50:58 +0000 (20:50 -0700)]
remove obsolete comments

i *think* the 'should never get here' was a side effect of using cgmanager
which is no longer valid.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoimplement access(2)
Serge Hallyn [Tue, 22 Mar 2016 00:42:04 +0000 (17:42 -0700)]
implement access(2)

This is needed by lxc's cgfsng driver.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agorelease 2.0.0.rc7 lxcfs-2.0.0.rc7
Serge Hallyn [Mon, 21 Mar 2016 17:55:24 +0000 (10:55 -0700)]
release 2.0.0.rc7

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agouse a better word in signal() failure error message
Serge Hallyn [Mon, 21 Mar 2016 17:46:54 +0000 (10:46 -0700)]
use a better word in signal() failure error message

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoMerge pull request #100 from hallyn/2016-03-20/starton
Stéphane Graber [Mon, 21 Mar 2016 16:04:45 +0000 (12:04 -0400)]
Merge pull request #100 from hallyn/2016-03-20/starton

upstart: change how we decide to not run in a container

8 years agoMerge pull request #101 from hallyn/2016-03-20/misc
Serge Hallyn [Mon, 21 Mar 2016 07:56:03 +0000 (00:56 -0700)]
Merge pull request #101 from hallyn/2016-03-20/misc

Address feedback from Markus Elfring

8 years agolxcfs reload: only call async-safe functions
Serge Hallyn [Mon, 21 Mar 2016 07:25:16 +0000 (00:25 -0700)]
lxcfs reload: only call async-safe functions

So don't call fprintf, don't take a lock we don't need, just set
an atomic volatile int to 1 when called.

Closes #94

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoconfigure.ac: drop second call to AM_INIT_AUTOMAKE
Serge Hallyn [Mon, 21 Mar 2016 07:03:04 +0000 (00:03 -0700)]
configure.ac: drop second call to AM_INIT_AUTOMAKE

Closes #95

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agohandle error in signal(2)
Serge Hallyn [Mon, 21 Mar 2016 06:49:21 +0000 (23:49 -0700)]
handle error in signal(2)

Closes #96

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoupstart: change how we decide to not run in a container
Serge Hallyn [Mon, 21 Mar 2016 04:08:47 +0000 (21:08 -0700)]
upstart: change how we decide to not run in a container

Otherwise lxcfs keeps lxc from hitting state 'started', which
in turn blocks reboot/shutdown.

Closes #92

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoMerge pull request #99 from stgraber/master
Serge Hallyn [Sun, 20 Mar 2016 16:48:44 +0000 (09:48 -0700)]
Merge pull request #99 from stgraber/master

hook: don't use mountpoint

8 years agohook: don't use mountpoint
Stéphane Graber [Sun, 20 Mar 2016 15:00:55 +0000 (11:00 -0400)]
hook: don't use mountpoint

It's not very reliable (had it fail on one of my servers) and since
we're already iterating through a list of mountpoints, it's also
completely unneeded.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
8 years agoMerge pull request #98 from stgraber/master
Serge Hallyn [Sun, 20 Mar 2016 01:43:35 +0000 (18:43 -0700)]
Merge pull request #98 from stgraber/master

Fix lxcfs mount handling with newer lxc

8 years agoFix lxcfs mount handling with newer lxc
Stéphane Graber [Sat, 19 Mar 2016 03:23:17 +0000 (23:23 -0400)]
Fix lxcfs mount handling with newer lxc

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
8 years agorelease 2.0.0.rc6 lxcfs-2.0.0.rc6
Serge Hallyn [Thu, 17 Mar 2016 21:49:39 +0000 (14:49 -0700)]
release 2.0.0.rc6

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoMerge pull request #97 from hallyn/2016-03-17/14.04
Serge Hallyn [Thu, 17 Mar 2016 21:47:03 +0000 (14:47 -0700)]
Merge pull request #97 from hallyn/2016-03-17/14.04

pam: support 14.04

8 years agopam: support 14.04
Serge Hallyn [Thu, 17 Mar 2016 21:28:53 +0000 (14:28 -0700)]
pam: support 14.04

In 14.04 our pam_systemd module used a different format for the
login cgroups.  If we find one of those in our name, then we want
to just chown it to us and not do anything more, just as we do in
xenial.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agorelease 2.0.0.rc5 lxcfs-2.0.0.rc5
Serge Hallyn [Mon, 14 Mar 2016 22:59:22 +0000 (15:59 -0700)]
release 2.0.0.rc5

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoMerge pull request #91 from hallyn/2016-03-14/nonint
Serge Hallyn [Mon, 14 Mar 2016 22:58:52 +0000 (15:58 -0700)]
Merge pull request #91 from hallyn/2016-03-14/nonint

pam_cgfs: create a new systemd cgroup if current isn't ours

8 years agopam_cgfs: create a new systemd cgroup if current isn't ours
Serge Hallyn [Mon, 14 Mar 2016 19:19:27 +0000 (12:19 -0700)]
pam_cgfs: create a new systemd cgroup if current isn't ours

If current systemd cgroup does not end in user-$uid.slice/session-c%d.scope,
then pam did not create our current systemd cgroup for us, so create a new
one rather than chowning the current one.

This happens with noninteractive sessions.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoAdd sysvinit to init systems for Debian and Ubuntu
Serge Hallyn [Sat, 12 Mar 2016 07:14:06 +0000 (23:14 -0800)]
Add sysvinit to init systems for Debian and Ubuntu

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agosystemd config files don't go under /usr
Serge Hallyn [Sat, 12 Mar 2016 06:54:13 +0000 (22:54 -0800)]
systemd config files don't go under /usr

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agorelease 2.0.0.rc4 lxcfs-2.0.0.rc4
Serge Hallyn [Sat, 12 Mar 2016 06:11:37 +0000 (22:11 -0800)]
release 2.0.0.rc4

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoSimplify the upstart job
Stéphane Graber [Sat, 12 Mar 2016 05:30:20 +0000 (00:30 -0500)]
Simplify the upstart job

This fixes the nesting case as before it would hit the first check,
which stops the job, then post-stop would unmount it.

Instead, lets just not start in containers, lxcfs is meant to run on the
host and be bind-mounted from there into containers.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
8 years agoFix lxcfs passthrough
Stéphane Graber [Sat, 12 Mar 2016 05:14:50 +0000 (00:14 -0500)]
Fix lxcfs passthrough

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
8 years agorelease 2.0.0.rc3 lxcfs-2.0.0.rc3
Serge Hallyn [Tue, 8 Mar 2016 00:09:25 +0000 (16:09 -0800)]
release 2.0.0.rc3

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoMerge pull request #90 from hallyn/2016-03-07/cached
Stéphane Graber [Tue, 8 Mar 2016 00:05:53 +0000 (19:05 -0500)]
Merge pull request #90 from hallyn/2016-03-07/cached

2016 03 07/cached

8 years agomeminfo_read: return 0 for Slab
Serge Hallyn [Mon, 7 Mar 2016 23:50:50 +0000 (15:50 -0800)]
meminfo_read: return 0 for Slab

Slab: is supposed to be the "in-kernel data structures cache".  I don't
know of a good way to calculate this from memory cgroup info.  If/when
we find it we can update it.  This value is used by free -m meaning
that if we don't shrink it, we can end up with negative values for
used memory.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoalways use container root cgroup, not init pid's
Serge Hallyn [Mon, 7 Mar 2016 23:42:18 +0000 (15:42 -0800)]
always use container root cgroup, not init pid's

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoMount /proc files even if /sys/fs/cgroup is disabled
Stéphane Graber [Mon, 7 Mar 2016 18:56:47 +0000 (13:56 -0500)]
Mount /proc files even if /sys/fs/cgroup is disabled

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
8 years agoFix start on lxc-less upstart systems
Stéphane Graber [Fri, 26 Feb 2016 16:24:45 +0000 (11:24 -0500)]
Fix start on lxc-less upstart systems

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
8 years agoFix release tarballs lxcfs-2.0.0.rc2
Serge Hallyn [Wed, 24 Feb 2016 21:31:38 +0000 (13:31 -0800)]
Fix release tarballs

Tell make dist to ship config/.
Fix the filename for the sysvinit job.
And release rc2 with this fix.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agorelease 2.0.0.rc1 lxcfs-2.0.0.rc1
Serge Hallyn [Wed, 24 Feb 2016 21:01:12 +0000 (13:01 -0800)]
release 2.0.0.rc1

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoMerge pull request #87 from hallyn/2016-02-23/init
Serge Hallyn [Tue, 23 Feb 2016 21:38:17 +0000 (13:38 -0800)]
Merge pull request #87 from hallyn/2016-02-23/init

Add upstart and systemd init jobs

8 years agoAdd upstart and systemd init jobs
Serge Hallyn [Tue, 23 Feb 2016 19:52:22 +0000 (11:52 -0800)]
Add upstart and systemd init jobs

Mostly copied from the Ubuntu package.

Note someone still needs to write the bsd and gentoo init
scripts.  (You can look at the sysvinit jobs here and the
bsd+gentoo jobs in git://github.com/lxc/cgmanager for
inspiration).

Closes #71

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoconfigure.ac: release LXCFS 2.0.0.beta2 lxcfs-2.0.0.beta2
Serge Hallyn [Fri, 19 Feb 2016 20:31:36 +0000 (12:31 -0800)]
configure.ac: release LXCFS 2.0.0.beta2

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agopam: don't hang if controllers have no mount path
Serge Hallyn [Fri, 19 Feb 2016 20:16:16 +0000 (12:16 -0800)]
pam: don't hang if controllers have no mount path

closes #86

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agopid_from_ns_wrapper: remove the loop
Serge Hallyn [Thu, 18 Feb 2016 18:10:16 +0000 (10:10 -0800)]
pid_from_ns_wrapper: remove the loop

If we clone a child which can't reply to us within the timeout, do
not keep looping, just return an error.  Commonize the function
superficially to make it look like pid_to_ns_wrapper().  Presumably
we can now merge these into one function, that's left for later.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoUse clone instead of fork for PID translation
Fabian Grünbichler [Thu, 18 Feb 2016 11:56:44 +0000 (12:56 +0100)]
Use clone instead of fork for PID translation

Because of the different signatures of fork() and clone(),
pid_to_ns and pid_from_ns get an additional wrapper that is
passed to clone(). To pass the needed arguments to
pid_ns_clone_wrapper, a new struct called pid_ns_clone_args
is introduced.

The return type of pid_to_ns and pid_from_ns need to be
changed to int, returning equals exiting with clone().

(serge - inline fix of erorr typo which bled through from the original)

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
8 years agoUse clone instead of fork in write_task_init_pid_exit
Fabian Grünbichler [Thu, 18 Feb 2016 11:53:40 +0000 (12:53 +0100)]
Use clone instead of fork in write_task_init_pid_exit

Adds a new wrapper for send_creds, avoiding the fork / pid
namespace issue present in glibc.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
8 years agoconfigure.ac: release 2.0.0.beta1 lxcfs-2.0.0.beta1
Serge Hallyn [Wed, 10 Feb 2016 06:27:39 +0000 (22:27 -0800)]
configure.ac: release 2.0.0.beta1

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoconfigure: drop unneeded variable
Serge Hallyn [Wed, 10 Feb 2016 04:57:13 +0000 (20:57 -0800)]
configure: drop unneeded variable

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agofix length check in proc_swaps_read
Serge Hallyn [Tue, 9 Feb 2016 21:58:29 +0000 (13:58 -0800)]
fix length check in proc_swaps_read

thanks Nehal for reminding me.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoDon't expand LIBDIR for liblxcfs.so, always use /usr/lib/lxcfs/
Serge Hallyn [Tue, 9 Feb 2016 19:45:48 +0000 (11:45 -0800)]
Don't expand LIBDIR for liblxcfs.so, always use /usr/lib/lxcfs/

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoAdd support for /proc/swaps
Serge Hallyn [Tue, 9 Feb 2016 19:13:49 +0000 (11:13 -0800)]
Add support for /proc/swaps

Example Output:

[root at lxc-dev <http://lists.linuxcontainers.org/listinfo/lxc-devel>  ~]# lxc-attach -n ubuntuwily --  /bin/cat /proc/swaps
Filename                                Type            Size    Used    Priority
none                                    virtual         1048572 1048572 0

Signed-off-by: Teemu Grönqvist <teemu.gronqvist@net9.fi>
Signed-off-by: Nehal J Wani <nehaljw.kkd1@gmail.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoMerge pull request #81 from hallyn/2016-02-08/pam
Serge Hallyn [Tue, 9 Feb 2016 08:29:37 +0000 (00:29 -0800)]
Merge pull request #81 from hallyn/2016-02-08/pam

pam_cgfs: change handling of name=systemd

8 years agopam_cgfs: change handling of name=systemd
Serge Hallyn [Tue, 9 Feb 2016 05:58:11 +0000 (21:58 -0800)]
pam_cgfs: change handling of name=systemd

Don't always ignore it.

Do ignore it (like all others) if not listed in the -c argument.

If the logged in task's name=systemd cgroup != that of the init
task's, assume we are in systemd and rename the user's.

If they are the same, assume we are in upstart or sysvinit and
create=chown a name=systemd cgroup just as for the others.

This should fix

https://bugs.launchpad.net/ubuntu/+source/lxcfs/+bug/1543353

and allow the ubuntu systemd package to drop its cgroup related
delta.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoMerge pull request #80 from hallyn/2016-02-08/dist
Serge Hallyn [Tue, 9 Feb 2016 05:49:49 +0000 (21:49 -0800)]
Merge pull request #80 from hallyn/2016-02-08/dist

add test_reload.sh to extra_dist

8 years agoadd test_reload.sh to extra_dist
Serge Hallyn [Tue, 9 Feb 2016 05:23:46 +0000 (21:23 -0800)]
add test_reload.sh to extra_dist

to get it into the make dist tarball

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoMerge pull request #79 from hallyn/2016-02-08/privlib
Serge Hallyn [Mon, 8 Feb 2016 19:25:09 +0000 (11:25 -0800)]
Merge pull request #79 from hallyn/2016-02-08/privlib

2016 02 08/privlib

8 years agotestsuite: handle liblxcfs changes
Serge Hallyn [Mon, 8 Feb 2016 17:59:26 +0000 (09:59 -0800)]
testsuite: handle liblxcfs changes

Since it is no longer automatically built, build liblxcfstest by hand
and move it into place.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agotest_reload: actually time out
Serge Hallyn [Mon, 8 Feb 2016 17:39:21 +0000 (09:39 -0800)]
test_reload: actually time out

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoLook for liblxcfs under LIBDIR/lxcfs
Serge Hallyn [Mon, 8 Feb 2016 17:36:18 +0000 (09:36 -0800)]
Look for liblxcfs under LIBDIR/lxcfs

if it was not found using ld.so.

Also use the same function always to load the library.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoMakefile: make testlib build optional, and drop the soname
Serge Hallyn [Mon, 8 Feb 2016 17:23:38 +0000 (09:23 -0800)]
Makefile: make testlib build optional, and drop the soname

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agobindings: avoid allocating an unused buffer
Wolfgang Bumiller [Fri, 5 Feb 2016 10:52:23 +0000 (11:52 +0100)]
bindings: avoid allocating an unused buffer

cgfs_list_children() and cgfs_list_keys() follow the same
pattern with the differences being that one lists
directories, the other files, and that cgfs_list_children()
always allocates an empty list while cgfs_list_keys()
NULL-initializes the list.
Both have a case which returns an error after a list has
been allocated, and in both cases the cleanup code is
guarded with an if(list).
In both cases on success the caller assumes the list is
non-empty which is why cgfs_list_children() returned a list
with a terminating NULL-entry.

This deduplicates the iteration code into a function with a
flag for whether regular files or directories are of
interest and a callback to create the list element.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
8 years agobindings: even more concise must_strcat_pid
Wolfgang Bumiller [Fri, 5 Feb 2016 11:10:15 +0000 (12:10 +0100)]
bindings: even more concise must_strcat_pid

We already assume tmp[] is big enough when using an unsized
sprintf(), considering it contains a single pid number and
is 30 bytes we can assume it was also big enough to hold the
terminating null byte.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
8 years agobindings: return value type fixup
Wolfgang Bumiller [Fri, 5 Feb 2016 10:50:32 +0000 (11:50 +0100)]
bindings: return value type fixup

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
8 years agoconfigure.ac: add -Wno-portability
Serge Hallyn [Thu, 4 Feb 2016 08:04:37 +0000 (00:04 -0800)]
configure.ac: add -Wno-portability

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoMerge pull request #76 from hallyn/2016-02-03/pidfile
Serge Hallyn [Thu, 4 Feb 2016 00:26:52 +0000 (16:26 -0800)]
Merge pull request #76 from hallyn/2016-02-03/pidfile

2016 02 03/pidfile

8 years agodrop glibc travis exceptions - we don't use glibc any more
Serge Hallyn [Wed, 3 Feb 2016 21:25:19 +0000 (13:25 -0800)]
drop glibc travis exceptions - we don't use glibc any more

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoAdd a pidfile
Serge Hallyn [Wed, 3 Feb 2016 21:24:11 +0000 (13:24 -0800)]
Add a pidfile

and update testsuite to use pidfile

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agodrop a debugging printf
Serge Hallyn [Wed, 3 Feb 2016 21:04:04 +0000 (13:04 -0800)]
drop a debugging printf

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoMerge pull request #75 from hallyn/n
Serge Hallyn [Wed, 3 Feb 2016 01:45:43 +0000 (17:45 -0800)]
Merge pull request #75 from hallyn/n

Don't tie entries in 'hierarchies' to their subsystem id

8 years agoDon't tie entries in 'hierarchies' to their subsystem id
Serge Hallyn [Wed, 3 Feb 2016 01:23:50 +0000 (17:23 -0800)]
Don't tie entries in 'hierarchies' to their subsystem id

There's no place where we rely on it, and it gets out of whack
if cgroups have been unmounted+remounted.

This is an alternative to https://github.com/lxc/lxcfs/pull/70.
Thanks to smemsh for the report and proposed fix.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoMerge pull request #74 from hallyn/2016-02-02/split.2
Serge Hallyn [Wed, 3 Feb 2016 00:46:57 +0000 (16:46 -0800)]
Merge pull request #74 from hallyn/2016-02-02/split.2

2016 02 02/split.2

8 years agoMake the bulk of the lxcfs code reloadable
Serge Hallyn [Mon, 1 Feb 2016 11:21:01 +0000 (12:21 +0100)]
Make the bulk of the lxcfs code reloadable

Move the majority of the code (the bits most likely to have security
bugs coming up) reloadable.  Sending USR1 signal to lxcfs will cause
it to reload the shared library so as to immediately start using the
fixed code.  This allows us to upgrade lxcfs in the majority of
cases without having to restart containers.

To achieve this, some code was moved around so that lxcfs.c itself
does not risk pinning any symbols from the shared library (which
would prevent it being unloaded).  We track the number of threads
currently using the bindings, and do the reload after it hits
zero (specifically, the next time that we turn the count from 0 to 1)

Also add a test case to make sure an updated library does in fact
get loaded.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoAvoid redefinition of ret in local scope
Serge Hallyn [Mon, 1 Feb 2016 11:23:30 +0000 (12:23 +0100)]
Avoid redefinition of ret in local scope

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
8 years agoMerge pull request #72 from stgraber/master
Serge Hallyn [Tue, 2 Feb 2016 18:53:07 +0000 (10:53 -0800)]
Merge pull request #72 from stgraber/master

Don't hardcode strings in testsuites

8 years agoDon't hardcode strings in testsuites
Stéphane Graber [Tue, 2 Feb 2016 16:54:02 +0000 (17:54 +0100)]
Don't hardcode strings in testsuites

With this, we should be able to run more than one testsuite at once.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>