diff options
author | Daniel Mack <github@zonque.org> | 2015-10-23 10:50:53 +0200 |
---|---|---|
committer | Daniel Mack <github@zonque.org> | 2015-10-23 10:50:53 +0200 |
commit | 952b4473bc392652b1d4c9dae5ec88fd003c4e1d (patch) | |
tree | 8d27afa9b27ceb997013868f2b80a4bb5a993911 /src/machine | |
parent | c9fc270e462bf2f4eab963bf71234d64b0c4c30f (diff) | |
parent | b0830e21f47109d8a6ba2fc0afbf9b2ca1ffc2a9 (diff) |
Merge pull request #1641 from poettering/btrfs-quota
btrfs quota beef up and various other unrelated changes
Diffstat (limited to 'src/machine')
-rw-r--r-- | src/machine/machinectl.c | 2 | ||||
-rw-r--r-- | src/machine/machined-dbus.c | 8 |
2 files changed, 6 insertions, 4 deletions
diff --git a/src/machine/machinectl.c b/src/machine/machinectl.c index 0a21ab4415..d7e0395690 100644 --- a/src/machine/machinectl.c +++ b/src/machine/machinectl.c @@ -2382,7 +2382,7 @@ static int set_limit(int argc, char *argv[], void *userdata) { uint64_t limit; int r; - if (streq(argv[argc-1], "-")) + if (STR_IN_SET(argv[argc-1], "-", "none", "infinity")) limit = (uint64_t) -1; else { r = parse_size(argv[argc-1], 1024, &limit); diff --git a/src/machine/machined-dbus.c b/src/machine/machined-dbus.c index 41bb106d28..6e4c72e8a9 100644 --- a/src/machine/machined-dbus.c +++ b/src/machine/machined-dbus.c @@ -79,7 +79,7 @@ static int property_get_pool_usage( if (fd >= 0) { BtrfsQuotaInfo q; - if (btrfs_subvol_get_quota_fd(fd, &q) >= 0) + if (btrfs_subvol_get_subtree_quota_fd(fd, 0, &q) >= 0) usage = q.referenced; } @@ -115,7 +115,7 @@ static int property_get_pool_limit( if (fd >= 0) { BtrfsQuotaInfo q; - if (btrfs_subvol_get_quota_fd(fd, &q) >= 0) + if (btrfs_subvol_get_subtree_quota_fd(fd, 0, &q) >= 0) size = q.referenced_max; } @@ -831,7 +831,9 @@ static int method_set_pool_limit(sd_bus_message *message, void *userdata, sd_bus if (r < 0 && r != -ENODEV) /* ignore ENODEV, as that's what is returned if the file system is not on loopback */ return sd_bus_error_set_errnof(error, r, "Failed to adjust loopback limit: %m"); - r = btrfs_quota_limit("/var/lib/machines", limit); + (void) btrfs_qgroup_set_limit("/var/lib/machines", 0, limit); + + r = btrfs_subvol_set_subtree_quota_limit("/var/lib/machines", 0, limit); if (r == -ENOTTY) return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, "Quota is only supported on btrfs."); if (r < 0) |