summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2015-04-07core: mount-setup: handle non-existing mountpoints gracefullyDaniel Mack
Commit e792e890f ("path-util: don't eat up ENOENT in path_is_mount_point()") changed path_is_mount_point() so it doesn't hide -ENOENT from its caller. This causes all boots to fail early in case any of the mount points does not exist (for instance, when kdbus isn't loaded, /sys/fs/kdbus is missing). Fix this by returning 0 from mount_one() if path_is_mount_point() returned -ENOENT.
2015-04-06btrfs: add support for recursive btrfs snapshottingLennart Poettering
2015-04-06btrfs: missing endian conversion fixLennart Poettering
2015-04-06btrfs: make btrfs_subvol_snapshot() parameters a flags fieldLennart Poettering
2015-04-06btrfs: support recursively removing btrfs snapshotsLennart Poettering
2015-04-06machined: drop btrfs subvolumes when removing container imagesLennart Poettering
2015-04-06path-util: don't eat up ENOENT in path_is_mount_point()Lennart Poettering
There's no reason to eat up ENOENT, it should be OK to simply report the error back.
2015-04-06path-util: make sure fd_is_mount_point() returns true for root directoryLennart Poettering
2015-04-06rm-rf: add support for recursively removing btrfs subvolumesLennart Poettering
2015-04-06path-util: if parent can do name_to_handle() but relevant dir not, it's a ↵Lennart Poettering
mount point
2015-04-06rm-rf: never cross mount pointsLennart Poettering
2015-04-06util: rework rm_rf() logicLennart Poettering
- Move to its own file rm-rf.c - Change parameters into a single flags parameter - Remove "honour sticky" logic, it's unused these days
2015-04-05bootchart: fix check for no fdShawn Landden
found with coverty report
2015-04-05sd-device: don't use alloca() within loopsTom Gundersen
I shall not use alloca() within loops I shall not use alloca() within loops I shall not use alloca() within loops I shall not use alloca() within loops ...
2015-04-05libudev-util: check length before accesing the arrayThomas Hindoe Paaboel Andersen
2015-04-05service: remove unnecessary forward declareThomas Hindoe Paaboel Andersen
2015-04-03sd-device,udevd: fix spelling /ammend/amend/Tom Gundersen
2015-04-03sd-device: fix deserialization from netlinkTom Gundersen
Use the standard FOREACH_WORD* macros. The current code was broken in the devlink case so the last one received was being dropped, causing https://bugs.freedesktop.org/show_bug.cgi?id=89894
2015-04-03sd-device: get_properties_{nulstr,strv} - don't recreate the buffer ↵Tom Gundersen
unnecessarily
2015-04-03sd-device: get_sysattr_value - don't leak returned valueTom Gundersen
This was getting leaked as a copy was added to the hashmap, simply add the returned value instead. This should fix CID #1292806.
2015-04-03sd-device: initialize variableTom Gundersen
sysnum would not be initialized if sysname had no trailing digits.
2015-04-03networkd: improve logging when processing links and addressesTom Gundersen
2015-04-03bootchart: assorted coding style fixesDaniel Mack
* kill unnecessary {} * add newlines where appropriate * remove dead code * reorder variable declarations * fix more return code logic * pass O_CLOEXEC to all open*() calles * use safe_close() where possible
2015-04-03bootchart: kill a bunch of global variablesDaniel Mack
This code is in a confusingly bad shape. Kill a bunch of global variables and pass needed variables around in function calls.
2015-04-03bootchart: clean up sysfd and proc handlingDaniel Mack
Retrieve the handle to procfs in main(), and pass it functions that need it. Kill the global variables. Also, refactor lots of code in svg_title(). There's no need to access any global variables from there either, and we really should return proper errors from there as well.
2015-04-03bootchart: clean up control flow logicDaniel Mack
Don't blindly exit() from random functions, but return a proper error and upchain error conditions. squash! bootchart: clean up control flow logic When pread() returns "0", it's a read failure, so don't make the caller think log_sample() was successful, return meaningful error code instead of 0.
2015-04-03bootchart: switch to log_* helpersDaniel Mack
Let the helper functions take care of the string message output.
2015-04-02timedatectl: many fixesLennart Poettering
- print runtime warnings with log_warning() - save and restore $TZ properly - Get rid of exit() pseudo error handling - Using time() is OK when connecting to a local container or when showing data about local host, but certainly not for remote hosts.
2015-04-02libudev: device - replace by a thin wrapper around sd-deviceTom Gundersen
2015-04-02fsck: port from libudev to sd-deviceTom Gundersen
2015-04-02cryptsetup: port from libudev to sd-deviceTom Gundersen
2015-04-02networkctl: port from libudev to sd-deviceTom Gundersen
2015-04-02libsystemd: add sd-device libraryTom Gundersen
This provides equivalent functionality to libudev-device, but in the systemd style. The public API only caters to creating sd_device objects from for devices that already exist in /sys, there is no support for listening for monitoring events or creating devices received over the udev netlink protocol. The private API contains the necessary functionality to make sd-device a drop-in replacement for libudev-device, but which we would not otherwise want to export.
2015-04-01udev: net_id - improve commentsTom Gundersen
The dev_port concept is a bit confusing, expand on the comment a bit.
2015-04-01udev: net_id - support multi-port enpo* device namesTom Gundersen
I'd argue that having firmware labels for such devices makes no sense, but they exist, so make sure we handle them as best as we can.
2015-04-01udev: net_id - fix copy-paste errorTom Gundersen
In case pci_slot overflows we were truncating pci_path instead.
2015-04-01libudev: monitor - improve loggingTom Gundersen
2015-04-01shared: set - make argument to set_remove() constTom Gundersen
2015-04-01mount: fix up wording in the commentMichal Sekletar
2015-04-01mount: don't run quotaon only for network filesystemsLukas Nykryn
If you have for example ext4 on iscsi devices it is possible to setup qoutas there. Unfortunately, because such fstab entry contains _netdev, systemd will not add dependency to quotaon.service.
2015-03-31nspawn: fallback on bind mount when mknod failsAlban Crequy
Some systems abusively restrict mknod, even when the device node already exists in /dev. This is unfortunate because it prevents systemd-nspawn from creating the basic devices in /dev in the container. This patch implements a workaround: when mknod fails, fallback on bind mounts. Additionally, /dev/console was created with a mknod with the same major/minor as /dev/null before bind mounting a pts on it. This patch removes the mknod and creates an empty regular file instead. In order to test this patch, I used the following configuration, which I think should replicate the system with the abusive restriction on mknod: # grep devices /proc/self/cgroup 4:devices:/user.slice/restrict # cat /sys/fs/cgroup/devices/user.slice/restrict/devices.list c 1:9 r c 5:2 rw c 136:* rw # systemd-nspawn --register=false -D . v2: - remove "bind", it is not needed since there is already MS_BIND v3: - fix error management when calling touch() - fix lowercase in error message
2015-03-31nspawn: drop sd_booted() checkLennart Poettering
We have no such check in any of the other tools, hence don't have one in nspawn either. (This should make things nicer for Rocket, among other things) Note: removing this check does not mean that we support running nspawn on non-systemd. We explicitly don't. It just means that we remove the check for running it like that. You are still on your own if you do...
2015-03-31nspawn: change filesystem type from "bind" to NULL in mount() syscallsIago López Galeiras
Try to keep syscalls as minimal as possible.
2015-03-31ARM: detect-virt: detect QEMU/KVMAndrew Jones
QEMU/KVM guests do not have hypervisor nodes, but they do have fw-cfg nodes (since qemu v2.3.0-rc0). fw-cfg nodes are documented, see kernel doc Documentation/devicetree/bindings/arm/fw-cfg.txt, and therefore we should be able to rely on it in this detection. Unfortunately, we currently don't have enough information in the DT, or elsewhere, to determine if we're using KVM acceleration with QEMU or not, so we can only report 'qemu' at this time, even if KVM is in use. This shouldn't really matter in practice though, because if detect-virt is used interactively it will be clear to the user whether or not KVM acceleration is present by the overall speed of the guest. If used by a script, then the script's behavior should not change whether it's 'qemu' or 'kvm'. QEMU emulated guests and QEMU/KVM guests of the same type should behave identically, only the speed at which they run should differ.
2015-03-31ARM: detect-virt: detect XenAndrew Jones
2015-03-31detect-virt: use /proc/device-treeAndrew Jones
Kernel doc Documentation/ABI/testing/sysfs-firmware-ofw says that the /proc/device-tree symlink should be used, as opposed to directly accessing /sys/firmware/devicetree/base. The former is ABI, but not the later.
2015-03-30systemd-bootchart: Repair Entropy GraphAlexander Sverdlin
Entropy Graph code doesn't handle the error condition if open() of /proc entry fails. Moreover, the file is only opened once and only first sample will contain the correct value because the return value of pread() is also not handled properly and file is not re-opened. Fix both problems.
2015-03-30systemd-bootchart: Prevent leaking file descriptors in open-fdopen combinationAlexander Sverdlin
Correctly handle the potential failure of fdopen() (because of OOM, for instance) after potentially successful open(). Prevent leaking open fd in such case.
2015-03-30systemd-bootchart: Prevent closing random file descriptorsAlexander Sverdlin
If the kernel has no CONFIG_SCHED_DEBUG option set, systemd-bootchart produces empty .svg file. The reason for this is very fragile file descriptor logic in log_sample() and main() (/* do some cleanup, close fd's */ block). There are many places where file descriptors are closed on failure (missing SCHED_DEBUG provokes it), but there are several problems with it: - following iterations in the loop see that the descriptor is non zero and do not open the corresponding file again; - "some cleanup" code closes already closed files and the descriptors are reused already, in particular for resulting .svg file; - static "vmstat" and "schedstat" variables in log_sample() made the situation even worse. These are the strace fragments: [...] close(7) = -1 EBADF (Bad file descriptor) close(-1) = -1 EBADF (Bad file descriptor) pread(7, 0xbea60a2c, 4095, 0) = -1 EBADF (Bad file descriptor) close(7) = -1 EBADF (Bad file descriptor) close(-1) = -1 EBADF (Bad file descriptor) pread(7, 0xbea60a2c, 4095, 0) = -1 EBADF (Bad file descriptor) close(7) = -1 EBADF (Bad file descriptor) close(-1) = -1 EBADF (Bad file descriptor) getdents64(4, /* 0 entries */, 32768) = 0 clock_gettime(CLOCK_MONOTONIC, {24, 783843501}) = 0 nanosleep({0, 5221792}, NULL) = 0 clock_gettime(CLOCK_MONOTONIC, {24, 789726835}) = 0 lseek(4, 0, SEEK_SET) = 0 pread(5, "nr_free_pages 52309\nnr_alloc_bat"..., 4095, 0) = 685 pread(6, "version 15\ntimestamp 4294939775\n"..., 4095, 0) = 86 getdents64(4, /* 99 entries */, 32768) = 2680 pread(7, 0xbea60a2c, 4095, 0) = -1 EBADF (Bad file descriptor) close(7) = -1 EBADF (Bad file descriptor) close(-1) = -1 EBADF (Bad file descriptor) pread(8, 0xbea60a2c, 4095, 0) = -1 EBADF (Bad file descriptor) close(8) = -1 EBADF (Bad file descriptor) close(-1) = -1 EBADF (Bad file descriptor) pread(9, 0xbea60a2c, 4095, 0) = -1 EBADF (Bad file descriptor) close(9) = -1 EBADF (Bad file descriptor) [...] where it obviously tries to close same and reused decriptors many times, also passing return code "-1" instead of descriptor... [...] close(7) = -1 EBADF (Bad file descriptor) close(-1) = -1 EBADF (Bad file descriptor) pipe2([7, 8], O_CLOEXEC) = 0 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb6fd0068) = 192 close(8) = 0 fcntl64(7, F_SETFD, 0) = 0 fstat64(7, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fd2000 read(7, "[ 0.074507] calling vfp_init"..., 4096) = 4096 [...] read(7, "s)\n[ 6.228910] UBIFS: reserve"..., 4096) = 4096 read(7, "trary Executable File Formats Fi"..., 4096) = 1616 read(7, "", 4096) = 0 close(7) = 0 wait4(192, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 192
2015-03-27network: don't pass NULL to udev_device_get_driver()Tom Gundersen