Module Name:    src
Committed By:   christos
Date:           Wed Nov  8 00:51:47 UTC 2017

Modified Files:
        src/sys/miscfs/procfs: procfs_vnops.c

Log Message:
fix locking, remove error(1) comments.


To generate a diff of this commit:
cvs rdiff -u -r1.199 -r1.200 src/sys/miscfs/procfs/procfs_vnops.c

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

Modified files:

Index: src/sys/miscfs/procfs/procfs_vnops.c
diff -u src/sys/miscfs/procfs/procfs_vnops.c:1.199 src/sys/miscfs/procfs/procfs_vnops.c:1.200
--- src/sys/miscfs/procfs/procfs_vnops.c:1.199	Tue Nov  7 19:42:12 2017
+++ src/sys/miscfs/procfs/procfs_vnops.c	Tue Nov  7 19:51:47 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: procfs_vnops.c,v 1.199 2017/11/08 00:42:12 christos Exp $	*/
+/*	$NetBSD: procfs_vnops.c,v 1.200 2017/11/08 00:51:47 christos Exp $	*/
 
 /*-
  * Copyright (c) 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -105,7 +105,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: procfs_vnops.c,v 1.199 2017/11/08 00:42:12 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: procfs_vnops.c,v 1.200 2017/11/08 00:51:47 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -782,8 +782,6 @@ procfs_getattr(void *v)
 	case PFSself:
 	case PFScurproc:
 		vap->va_bytes = vap->va_size =
-/*###785 [cc] error: 'bf' undeclared (first use in this function)%%%*/
-/*###785 [cc] note: each undeclared identifier is reported only once for each function it appears in%%%*/
 		    snprintf(bf, sizeof(bf), "%ld", (long)curproc->p_pid);
 		break;
 	case PFStask:
@@ -843,7 +841,6 @@ procfs_getattr(void *v)
 		vap->va_bytes = vap->va_size = procp->p_execsw->es_arglen;
 		break;
 
-
 #if defined(PT_GETREGS) || defined(PT_SETREGS)
 	case PFSregs:
 		vap->va_bytes = vap->va_size = sizeof(struct reg);
@@ -884,7 +881,6 @@ procfs_getattr(void *v)
 
 	case PFScwd:
 	case PFSchroot:
-/*###885 [cc] error: 'bp' undeclared (first use in this function)%%%*/
 		bp = path + MAXPATHLEN;
 		*--bp = '\0';
 		procfs_dir(pfs->pfs_type, curlwp, procp, &bp, path,
@@ -1601,7 +1597,7 @@ procfs_readlink(void *v)
 	int len = 0;
 	int error = 0;
 	struct pfsnode *pfs = VTOPFS(ap->a_vp);
-	struct proc *pown;
+	struct proc *pown = NULL;
 
 	if (pfs->pfs_fileno == PROCFS_FILENO(0, PFScurproc, -1))
 		len = snprintf(bf, sizeof(bf), "%ld", (long)curproc->p_pid);
@@ -1614,7 +1610,6 @@ procfs_readlink(void *v)
 			return error;
 		bp = pown->p_path;
 		len = strlen(bp);
-		procfs_proc_unlock(pown);
 	} else if (pfs->pfs_fileno == PROCFS_FILENO(pfs->pfs_pid, PFScwd, -1) ||
 	    pfs->pfs_fileno == PROCFS_FILENO(pfs->pfs_pid, PFSchroot, -1)) {
 		if ((error = procfs_proc_lock(pfs->pfs_pid, &pown, ESRCH)) != 0)
@@ -1628,7 +1623,6 @@ procfs_readlink(void *v)
 		*--bp = '\0';
 		procfs_dir(PROCFS_TYPE(pfs->pfs_fileno), curlwp, pown,
 		    &bp, path, MAXPATHLEN);
-		procfs_proc_unlock(pown);
 		len = strlen(bp);
 	} else {
 		file_t *fp;
@@ -1696,11 +1690,12 @@ procfs_readlink(void *v)
 			break;
 		}	
 		closef(fp);
-		procfs_proc_unlock(pown);
 	}
 
 	if (error == 0)
 		error = uiomove(bp, len, ap->a_uio);
+	if (pown)
+		procfs_proc_unlock(pown);
 	if (path)
 		free(path, M_TEMP);
 	return error;

Reply via email to