1
0
mirror of https://github.com/systemd/systemd.git synced 2025-07-15 20:59:12 +03:00

machined,machinectl: add calls for changing container/VM quotas

This commit is contained in:
Lennart Poettering
2015-02-24 23:50:37 +01:00
parent 950c07d421
commit d6ce17c7f0
10 changed files with 226 additions and 6 deletions

View File

@ -669,3 +669,29 @@ int btrfs_quota_enable(const char *path, bool b) {
return btrfs_quota_enable_fd(fd, b);
}
int btrfs_quota_limit_fd(int fd, uint64_t referred_max) {
struct btrfs_ioctl_qgroup_limit_args args = {
.lim.max_rfer =
referred_max == (uint64_t) -1 ? 0 :
referred_max == 0 ? 1 : referred_max,
.lim.flags = BTRFS_QGROUP_LIMIT_MAX_RFER,
};
assert(fd >= 0);
if (ioctl(fd, BTRFS_IOC_QGROUP_LIMIT, &args) < 0)
return -errno;
return 0;
}
int btrfs_quota_limit(const char *path, uint64_t referred_max) {
_cleanup_close_ int fd = -1;
fd = open(path, O_RDONLY|O_CLOEXEC|O_NOCTTY|O_NOFOLLOW);
if (fd < 0)
return -errno;
return btrfs_quota_limit_fd(fd, referred_max);
}