summaryrefslogtreecommitdiff
path: root/sys/geom/cache/g_cache.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/geom/cache/g_cache.c')
-rw-r--r--sys/geom/cache/g_cache.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/sys/geom/cache/g_cache.c b/sys/geom/cache/g_cache.c
index 38d68a81cbcc..1025eb24f70b 100644
--- a/sys/geom/cache/g_cache.c
+++ b/sys/geom/cache/g_cache.c
@@ -51,7 +51,7 @@ FEATURE(geom_cache, "GEOM cache module");
static MALLOC_DEFINE(M_GCACHE, "gcache_data", "GEOM_CACHE Data");
SYSCTL_DECL(_kern_geom);
-static SYSCTL_NODE(_kern_geom, OID_AUTO, cache, CTLFLAG_RW, 0,
+static SYSCTL_NODE(_kern_geom, OID_AUTO, cache, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
"GEOM_CACHE stuff");
static u_int g_cache_debug = 0;
SYSCTL_UINT(_kern_geom_cache, OID_AUTO, debug, CTLFLAG_RW, &g_cache_debug, 0,
@@ -84,10 +84,14 @@ sysctl_handle_pct(SYSCTL_HANDLER_ARGS)
*(u_int *)arg1 = val;
return (0);
}
-SYSCTL_PROC(_kern_geom_cache, OID_AUTO, used_lo, CTLTYPE_UINT|CTLFLAG_RW,
- &g_cache_used_lo, 0, sysctl_handle_pct, "IU", "");
-SYSCTL_PROC(_kern_geom_cache, OID_AUTO, used_hi, CTLTYPE_UINT|CTLFLAG_RW,
- &g_cache_used_hi, 0, sysctl_handle_pct, "IU", "");
+SYSCTL_PROC(_kern_geom_cache, OID_AUTO, used_lo,
+ CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, &g_cache_used_lo, 0,
+ sysctl_handle_pct, "IU",
+ "");
+SYSCTL_PROC(_kern_geom_cache, OID_AUTO, used_hi,
+ CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, &g_cache_used_hi, 0,
+ sysctl_handle_pct, "IU",
+ "");
static int g_cache_destroy(struct g_cache_softc *sc, boolean_t force);