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);
 }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to