Module Name:    src
Committed By:   rmind
Date:           Sun May  1 00:22:37 UTC 2011

Modified Files:
        src/sys/kern: kern_proc.c kern_resource.c
        src/sys/sys: resourcevar.h

Log Message:
Merge duplicate code fragments into a new lim_setcorename() routine.


To generate a diff of this commit:
cvs rdiff -u -r1.177 -r1.178 src/sys/kern/kern_proc.c
cvs rdiff -u -r1.159 -r1.160 src/sys/kern/kern_resource.c
cvs rdiff -u -r1.49 -r1.50 src/sys/sys/resourcevar.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/kern/kern_proc.c
diff -u src/sys/kern/kern_proc.c:1.177 src/sys/kern/kern_proc.c:1.178
--- src/sys/kern/kern_proc.c:1.177	Sun May  1 00:11:52 2011
+++ src/sys/kern/kern_proc.c	Sun May  1 00:22:36 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_proc.c,v 1.177 2011/05/01 00:11:52 rmind Exp $	*/
+/*	$NetBSD: kern_proc.c,v 1.178 2011/05/01 00:22:36 rmind Exp $	*/
 
 /*-
  * Copyright (c) 1999, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_proc.c,v 1.177 2011/05/01 00:11:52 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_proc.c,v 1.178 2011/05/01 00:22:36 rmind Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_kstack.h"
@@ -1337,20 +1337,11 @@
 {
 	struct lwp *l = curlwp;
 	struct proc *p = l->l_proc;
-	struct plimit *lim;
 	kauth_cred_t oc;
-	char *cn;
 
 	/* Reset what needs to be reset in plimit. */
 	if (p->p_limit->pl_corename != defcorename) {
-		lim_privatise(p, false);
-		lim = p->p_limit;
-		mutex_enter(&lim->pl_lock);
-		cn = lim->pl_corename;
-		lim->pl_corename = defcorename;
-		mutex_exit(&lim->pl_lock);
-		if (cn != defcorename)
-			free(cn, M_TEMP);
+		lim_setcorename(p, defcorename, 0);
 	}
 
 	mutex_enter(p->p_lock);

Index: src/sys/kern/kern_resource.c
diff -u src/sys/kern/kern_resource.c:1.159 src/sys/kern/kern_resource.c:1.160
--- src/sys/kern/kern_resource.c:1.159	Sun May  1 00:11:52 2011
+++ src/sys/kern/kern_resource.c	Sun May  1 00:22:36 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_resource.c,v 1.159 2011/05/01 00:11:52 rmind Exp $	*/
+/*	$NetBSD: kern_resource.c,v 1.160 2011/05/01 00:22:36 rmind Exp $	*/
 
 /*-
  * Copyright (c) 1982, 1986, 1991, 1993
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_resource.c,v 1.159 2011/05/01 00:11:52 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_resource.c,v 1.160 2011/05/01 00:22:36 rmind Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -699,6 +699,25 @@
 }
 
 void
+lim_setcorename(proc_t *p, char *name, size_t len)
+{
+	struct plimit *lim;
+	char *oname;
+
+	lim_privatise(p, false);
+	lim = p->p_limit;
+
+	mutex_enter(&lim->pl_lock);
+	oname = lim->pl_corename;
+	lim->pl_corename = name;
+	mutex_exit(&lim->pl_lock);
+
+	if (oname != defcorename) {
+		free(oname, M_TEMP);
+	}
+}
+
+void
 lim_free(struct plimit *lim)
 {
 	struct plimit *sv_lim;
@@ -858,17 +877,7 @@
 		goto done;
 	}
 	memcpy(cname, cnbuf, len);
-
-	char *ocname;
-	lim_privatise(p, false);
-	lim = p->p_limit;
-	mutex_enter(&lim->pl_lock);
-	ocname = lim->pl_corename;
-	lim->pl_corename = cname;
-	mutex_exit(&lim->pl_lock);
-	if (ocname != defcorename)
-		free(ocname, M_TEMP);
-
+	lim_setcorename(p, cname, len);
 done:
 	rw_exit(&p->p_reflock);
 	PNBUF_PUT(cnbuf);

Index: src/sys/sys/resourcevar.h
diff -u src/sys/sys/resourcevar.h:1.49 src/sys/sys/resourcevar.h:1.50
--- src/sys/sys/resourcevar.h:1.49	Sun May  1 00:11:52 2011
+++ src/sys/sys/resourcevar.h	Sun May  1 00:22:36 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: resourcevar.h,v 1.49 2011/05/01 00:11:52 rmind Exp $	*/
+/*	$NetBSD: resourcevar.h,v 1.50 2011/05/01 00:22:36 rmind Exp $	*/
 
 /*
  * Copyright (c) 1991, 1993
@@ -110,6 +110,7 @@
 struct plimit *lim_copy(struct plimit *lim);
 void	lim_addref(struct plimit *lim);
 void	lim_privatise(struct proc *p, bool set_shared);
+void	lim_setcorename(struct proc *, char *, size_t);
 void	lim_free(struct plimit *);
 
 void	resource_init(void);

Reply via email to