Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 1 Apr 2016 17:28:55 +0000 (UTC)
From:      Edward Tomasz Napierala <trasz@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r297492 - head/sys/kern
Message-ID:  <201604011728.u31HStG5032307@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201604011728.u31HStG5032307>