Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bb53f77b authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "installd: add quota API for project IDs." am: 6f435621 am: 760aea1d

Change-Id: I4b496c5560e89b8a4554c39ae7996be9a69ee7bd
parents d7ff7ddb 760aea1d
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -97,6 +97,26 @@ int64_t GetOccupiedSpaceForUid(const std::string& uuid, uid_t uid) {
    }
}

int64_t GetOccupiedSpaceForProjectId(const std::string& uuid, int projectId) {
    const std::string device = FindQuotaDeviceForUuid(uuid);
    if (device == "") {
        return -1;
    }
    struct dqblk dq;
    if (quotactl(QCMD(Q_GETQUOTA, PRJQUOTA), device.c_str(), projectId,
            reinterpret_cast<char*>(&dq)) != 0) {
        if (errno != ESRCH) {
            PLOG(ERROR) << "Failed to quotactl " << device << " for Project ID " << projectId;
        }
        return -1;
    } else {
#if MEASURE_DEBUG
        LOG(DEBUG) << "quotactl() for Project ID " << projectId << " " << dq.dqb_curspace;
#endif
        return dq.dqb_curspace;
    }
}

int64_t GetOccupiedSpaceForGid(const std::string& uuid, gid_t gid) {
    const std::string device = FindQuotaDeviceForUuid(uuid);
    if (device == "") {
+2 −0
Original line number Diff line number Diff line
@@ -35,6 +35,8 @@ int64_t GetOccupiedSpaceForUid(const std::string& uuid, uid_t uid);
/* Get the current occupied space in bytes for a gid or -1 if fails */
int64_t GetOccupiedSpaceForGid(const std::string& uuid, gid_t gid);

/* Get the current occupied space in bytes for a project id or -1 if fails */
int64_t GetOccupiedSpaceForProjectId(const std::string& uuid, int projectId);
}  // namespace installd
}  // namespace android