svn commit: r185864 - in head/sys: compat/linprocfs fs/procfs

Konstantin Belousov kib at FreeBSD.org
Wed Dec 10 08:11:09 PST 2008


Author: kib
Date: Wed Dec 10 16:11:09 2008
New Revision: 185864
URL: http://svn.freebsd.org/changeset/base/185864

Log:
  Relock user map earlier, to have the lock held when break leaves the
  loop earlier due to sbuf error.
  
  Pointy hat to:	me
  Submitted by:	dchagin

Modified:
  head/sys/compat/linprocfs/linprocfs.c
  head/sys/fs/procfs/procfs_map.c

Modified: head/sys/compat/linprocfs/linprocfs.c
==============================================================================
--- head/sys/compat/linprocfs/linprocfs.c	Wed Dec 10 16:02:54 2008	(r185863)
+++ head/sys/compat/linprocfs/linprocfs.c	Wed Dec 10 16:11:09 2008	(r185864)
@@ -969,11 +969,11 @@ linprocfs_doprocmaps(PFS_FILL_ARGS)
 		    );
 		if (freename)
 			free(freename, M_TEMP);
+		vm_map_lock_read(map);
 		if (error == -1) {
 			error = 0;
 			break;
 		}
-		vm_map_lock_read(map);
 		if (last_timestamp + 1 != map->timestamp) {
 			/*
 			 * Look again for the entry because the map was

Modified: head/sys/fs/procfs/procfs_map.c
==============================================================================
--- head/sys/fs/procfs/procfs_map.c	Wed Dec 10 16:02:54 2008	(r185863)
+++ head/sys/fs/procfs/procfs_map.c	Wed Dec 10 16:11:09 2008	(r185864)
@@ -219,12 +219,11 @@ procfs_doprocmap(PFS_FILL_ARGS)
 
 		if (freepath != NULL)
 			free(freepath, M_TEMP);
-
+		vm_map_lock_read(map);
 		if (error == -1) {
 			error = 0;
 			break;
 		}
-		vm_map_lock_read(map);
 		if (last_timestamp + 1 != map->timestamp) {
 			/*
 			 * Look again for the entry because the map was


More information about the svn-src-head mailing list