Author: trasz
Date: Fri Apr  1 17:28:55 2016
New Revision: 297492
URL: https://svnweb.freebsd.org/changeset/base/297492

Log:
  Call rctl_enforce() in all cases the resource usage goes up, even when called
  from racct_*_force() functions.  It makes the "log" and "devctl" actions work
  in those cases.
  
  MFC after:    1 month
  Sponsored by: The FreeBSD Foundation

Modified:
  head/sys/kern/kern_racct.c

Modified: head/sys/kern/kern_racct.c
==============================================================================
--- head/sys/kern/kern_racct.c  Fri Apr  1 17:21:55 2016        (r297491)
+++ head/sys/kern/kern_racct.c  Fri Apr  1 17:28:55 2016        (r297492)
@@ -548,12 +548,10 @@ racct_add_locked(struct proc *p, int res
        PROC_LOCK_ASSERT(p, MA_OWNED);
 
 #ifdef RCTL
-       if (!force) {
-               error = rctl_enforce(p, resource, amount);
-               if (error && RACCT_IS_DENIABLE(resource)) {
-                       SDT_PROBE3(racct, , rusage, add__failure, p, resource, 
amount);
-                       return (error);
-               }
+       error = rctl_enforce(p, resource, amount);
+       if (error && !force && RACCT_IS_DENIABLE(resource)) {
+               SDT_PROBE3(racct, , rusage, add__failure, p, resource, amount);
+               return (error);
        }
 #endif
        racct_adjust_resource(p->p_racct, resource, amount);
@@ -670,9 +668,9 @@ racct_set_locked(struct proc *p, int res
             resource));
 #endif
 #ifdef RCTL
-       if (!force && diff_proc > 0) {
+       if (diff_proc > 0) {
                error = rctl_enforce(p, resource, diff_proc);
-               if (error && RACCT_IS_DENIABLE(resource)) {
+               if (error && !force && RACCT_IS_DENIABLE(resource)) {
                        SDT_PROBE3(racct, , rusage, set__failure, p, resource,
                            amount);
                        return (error);
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to