[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