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);