svn commit: r301838 - head/sys/compat/linprocfs
Konstantin Belousov
kib at FreeBSD.org
Sun Jun 12 11:13:39 UTC 2016
Author: kib
Date: Sun Jun 12 11:13:38 2016
New Revision: 301838
URL: https://svnweb.freebsd.org/changeset/base/301838
Log:
swap_dev_info() does not require Giant, so Giant locking around
the loop in linprocfs_doswaps() is useless.
List of the registered filesystems is protected by vfsconf_sx,
not by the Giant. Adjust linprocfs_dofilesystems() correspondingly.
Approved by: re (delphij), des (linprocfs maintainer)
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Modified:
head/sys/compat/linprocfs/linprocfs.c
Modified: head/sys/compat/linprocfs/linprocfs.c
==============================================================================
--- head/sys/compat/linprocfs/linprocfs.c Sun Jun 12 08:32:39 2016 (r301837)
+++ head/sys/compat/linprocfs/linprocfs.c Sun Jun 12 11:13:38 2016 (r301838)
@@ -490,7 +490,6 @@ linprocfs_doswaps(PFS_FILL_ARGS)
char devname[SPECNAMELEN + 1];
sbuf_printf(sb, "Filename\t\t\t\tType\t\tSize\tUsed\tPriority\n");
- mtx_lock(&Giant);
for (n = 0; ; n++) {
if (swap_dev_info(n, &xsw, devname, sizeof(devname)) != 0)
break;
@@ -504,7 +503,6 @@ linprocfs_doswaps(PFS_FILL_ARGS)
sbuf_printf(sb, "/dev/%-34s unknown\t\t%jd\t%jd\t-1\n",
devname, total, used);
}
- mtx_unlock(&Giant);
return (0);
}
@@ -1326,13 +1324,13 @@ linprocfs_dofilesystems(PFS_FILL_ARGS)
{
struct vfsconf *vfsp;
- mtx_lock(&Giant);
+ vfsconf_slock();
TAILQ_FOREACH(vfsp, &vfsconf, vfc_list) {
if (vfsp->vfc_flags & VFCF_SYNTHETIC)
sbuf_printf(sb, "nodev");
sbuf_printf(sb, "\t%s\n", vfsp->vfc_name);
}
- mtx_unlock(&Giant);
+ vfsconf_sunlock();
return(0);
}
More information about the svn-src-head
mailing list