#include <sys/quota.h>
#include <sys/stat.h>
+#include "sd-id128.h"
+
#include "btrfs-util.h"
#include "bus-common-errors.h"
#include "bus-error.h"
#include "fileio.h"
#include "format-util.h"
#include "fs-util.h"
+#include "glyph-util.h"
#include "gpt.h"
#include "home-util.h"
#include "homed-conf.h"
static int on_home_inotify(sd_event_source *s, const struct inotify_event *event, void *userdata) {
_cleanup_free_ char *j = NULL;
- Manager *m = userdata;
+ Manager *m = ASSERT_PTR(userdata);
const char *e, *n;
- assert(m);
assert(event);
if ((event->mask & (IN_Q_OVERFLOW|IN_MOVE_SELF|IN_DELETE_SELF|IN_IGNORED|IN_UNMOUNT)) != 0) {
static int search_quota(uid_t uid, const char *exclude_quota_path) {
struct stat exclude_st = {};
dev_t previous_devno = 0;
- const char *where;
int r;
/* Checks whether the specified UID owns any files on the files system, but ignore any file system
previous_devno = st.st_dev;
- r = quotactl_devno(QCMD_FIXED(Q_GETQUOTA, USRQUOTA), st.st_dev, uid, &req);
+ r = quotactl_devnum(QCMD_FIXED(Q_GETQUOTA, USRQUOTA), st.st_dev, uid, &req);
if (r < 0) {
if (ERRNO_IS_NOT_SUPPORTED(r))
log_debug_errno(r, "No UID quota support on %s, ignoring.", where);
if (S_ISDIR(st.st_mode)) {
_cleanup_free_ char *n = NULL, *user_name = NULL, *realm = NULL;
- _cleanup_close_ int fd = -1;
+ _cleanup_close_ int fd = -EBADF;
UserStorage storage;
if (!directory_suffix)
CMSG_BUFFER_TYPE(CMSG_SPACE(sizeof(struct ucred)) + CMSG_SPACE(sizeof(int))) control;
_cleanup_free_ void *buffer = NULL;
- _cleanup_close_ int passed_fd = -1;
+ _cleanup_close_ int passed_fd = -EBADF;
struct ucred *sender = NULL;
struct cmsghdr *cmsg;
struct msghdr mh;
static int on_notify_socket(sd_event_source *s, int fd, uint32_t revents, void *userdata) {
_cleanup_strv_free_ char **l = NULL;
_cleanup_free_ void *datagram = NULL;
- _cleanup_close_ int passed_fd = -1;
+ _cleanup_close_ int passed_fd = -EBADF;
struct ucred sender = UCRED_INVALID;
- Manager *m = userdata;
+ Manager *m = ASSERT_PTR(userdata);
ssize_t n;
Home *h;
assert(s);
- assert(m);
n = read_datagram(fd, &sender, &datagram, &passed_fd);
if (n < 0) {
}
static int manager_listen_notify(Manager *m) {
- _cleanup_close_ int fd = -1;
+ _cleanup_close_ int fd = -EBADF;
union sockaddr_union sa = {
.un.sun_family = AF_UNIX,
.un.sun_path = "/run/systemd/home/notify",
return 0;
if (r < 0)
return log_error_errno(r, "Failed to acquire ID_PART_ENTRY_TYPE device property, ignoring: %m");
- if (id128_equal_string(parttype, GPT_USER_HOME) <= 0) {
+ if (sd_id128_string_equal(parttype, SD_GPT_USER_HOME) <= 0) {
log_debug("Found partition (%s) we don't care about, ignoring.", sysfs);
return 0;
}
}
static int manager_on_device(sd_device_monitor *monitor, sd_device *d, void *userdata) {
- Manager *m = userdata;
+ Manager *m = ASSERT_PTR(userdata);
int r;
- assert(m);
assert(d);
if (device_for_action(d, SD_DEVICE_REMOVE)) {
}
static int on_deferred_rescan(sd_event_source *s, void *userdata) {
- Manager *m = userdata;
-
- assert(m);
+ Manager *m = ASSERT_PTR(userdata);
m->deferred_rescan_event_source = sd_event_source_disable_unref(m->deferred_rescan_event_source);
}
static int on_deferred_gc(sd_event_source *s, void *userdata) {
- Manager *m = userdata;
-
- assert(m);
+ Manager *m = ASSERT_PTR(userdata);
m->deferred_gc_event_source = sd_event_source_disable_unref(m->deferred_gc_event_source);
(m->rebalance_state == REBALANCE_GROWING && h->rebalance_goal < h->rebalance_size))
h->rebalance_pending = false;
else {
- log_debug("Rebalancing home directory '%s' %s → %s.", h->user_name,
- FORMAT_BYTES(h->rebalance_size), FORMAT_BYTES(h->rebalance_goal));
+ log_debug("Rebalancing home directory '%s' %s %s %s.", h->user_name,
+ FORMAT_BYTES(h->rebalance_size),
+ special_glyph(SPECIAL_GLYPH_ARROW_RIGHT),
+ FORMAT_BYTES(h->rebalance_goal));
h->rebalance_pending = true;
}
}
static int on_rebalance_timer(sd_event_source *s, usec_t t, void *userdata) {
- Manager *m = userdata;
+ Manager *m = ASSERT_PTR(userdata);
assert(s);
- assert(m);
assert(IN_SET(m->rebalance_state, REBALANCE_WAITING, REBALANCE_PENDING, REBALANCE_SHRINKING, REBALANCE_GROWING));
(void) manager_rebalance_now(m);