[libvirt] [PATCH 1/6] process: Allow virProcessPrLimit() to get current limit
John Ferlan
jferlan at redhat.com
Wed Dec 9 17:01:56 UTC 2015
On 11/24/2015 08:56 AM, Andrea Bolognani wrote:
> The prlimit() function allows both getting and setting limits for
> a process; expose the same functionality in our wrapper.
>
> Add the const modifier for new_limit, in accordance with the
> prototype for prlimit().
Since the current way hasn't bombed on some other compiler, I certainly
hope adding const won't do so - I see no harm, but I've also know I
never fully trust "other" compilers...
> ---
> src/util/virprocess.c | 16 ++++++++++------
> 1 file changed, 10 insertions(+), 6 deletions(-)
>
ACK - I see no harm here (yet ;-))
John
> diff --git a/src/util/virprocess.c b/src/util/virprocess.c
> index 4b18903..9b38834 100644
> --- a/src/util/virprocess.c
> +++ b/src/util/virprocess.c
> @@ -725,15 +725,19 @@ int virProcessSetNamespaces(size_t nfdlist,
>
> #if HAVE_PRLIMIT
> static int
> -virProcessPrLimit(pid_t pid, int resource, struct rlimit *rlim)
> +virProcessPrLimit(pid_t pid,
> + int resource,
> + const struct rlimit *new_limit,
> + struct rlimit *old_limit)
> {
> - return prlimit(pid, resource, rlim, NULL);
> + return prlimit(pid, resource, new_limit, old_limit);
> }
> #elif HAVE_SETRLIMIT
> static int
> virProcessPrLimit(pid_t pid ATTRIBUTE_UNUSED,
> int resource ATTRIBUTE_UNUSED,
> - struct rlimit *rlim ATTRIBUTE_UNUSED)
> + const struct rlimit *new_limit ATTRIBUTE_UNUSED,
> + struct rlimit *old_limit ATTRIBUTE_UNUSED)
> {
> errno = ENOSYS;
> return -1;
> @@ -758,7 +762,7 @@ virProcessSetMaxMemLock(pid_t pid, unsigned long long bytes)
> return -1;
> }
> } else {
> - if (virProcessPrLimit(pid, RLIMIT_MEMLOCK, &rlim) < 0) {
> + if (virProcessPrLimit(pid, RLIMIT_MEMLOCK, &rlim, NULL) < 0) {
> virReportSystemError(errno,
> _("cannot limit locked memory "
> "of process %lld to %llu"),
> @@ -803,7 +807,7 @@ virProcessSetMaxProcesses(pid_t pid, unsigned int procs)
> return -1;
> }
> } else {
> - if (virProcessPrLimit(pid, RLIMIT_NPROC, &rlim) < 0) {
> + if (virProcessPrLimit(pid, RLIMIT_NPROC, &rlim, NULL) < 0) {
> virReportSystemError(errno,
> _("cannot limit number of subprocesses "
> "of process %lld to %u"),
> @@ -851,7 +855,7 @@ virProcessSetMaxFiles(pid_t pid, unsigned int files)
> return -1;
> }
> } else {
> - if (virProcessPrLimit(pid, RLIMIT_NOFILE, &rlim) < 0) {
> + if (virProcessPrLimit(pid, RLIMIT_NOFILE, &rlim, NULL) < 0) {
> virReportSystemError(errno,
> _("cannot limit number of open files "
> "of process %lld to %u"),
>
More information about the libvir-list
mailing list