aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2022-01-23 00:24:12 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2022-01-31 02:46:14 +0000
commit531f8cfea06b689b6c17219faa3e67977958b0c0 (patch)
tree7cb6c411d7e2aa268bdb36ce716efe572c0b67e4
parent9cd59de2e19b032fcbe6a9e7524b00e73a1a761c (diff)
downloadsrc-531f8cfea06b689b6c17219faa3e67977958b0c0.tar.gz
src-531f8cfea06b689b6c17219faa3e67977958b0c0.zip
Use dedicated lock name for pbufs
Also remove a pointer to array variable, use array address directly. Reviewed by: markj, mckusick Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D34072
-rw-r--r--sys/kern/vfs_bio.c14
-rw-r--r--sys/sys/buf.h6
-rw-r--r--sys/vm/vm_pager.c4
3 files changed, 12 insertions, 12 deletions
diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c
index ce7f860f1ffe..0cf02a95729c 100644
--- a/sys/kern/vfs_bio.c
+++ b/sys/kern/vfs_bio.c
@@ -400,12 +400,6 @@ struct bufqueue __exclusive_cache_line bqempty;
*/
uma_zone_t buf_zone;
-/*
- * Single global constant for BUF_WMESG, to avoid getting multiple references.
- * buf_wmesg is referred from macros.
- */
-const char *buf_wmesg = BUF_WMESG;
-
static int
sysctl_runningspace(SYSCTL_HANDLER_ARGS)
{
@@ -1184,6 +1178,12 @@ kern_vfs_bio_buffer_alloc(caddr_t v, long physmem_est)
return (v);
}
+/*
+ * Single global constant for BUF_WMESG, to avoid getting multiple
+ * references.
+ */
+static const char buf_wmesg[] = "bufwait";
+
/* Initialize the buffer subsystem. Called before use of any buffers. */
void
bufinit(void)
@@ -1214,7 +1214,7 @@ bufinit(void)
bp->b_xflags = 0;
bp->b_data = bp->b_kvabase = unmapped_buf;
LIST_INIT(&bp->b_dep);
- BUF_LOCKINIT(bp);
+ BUF_LOCKINIT(bp, buf_wmesg);
bq_insert(&bqempty, bp, false);
}
diff --git a/sys/sys/buf.h b/sys/sys/buf.h
index b831003cf63d..8fb49fb1e7d1 100644
--- a/sys/sys/buf.h
+++ b/sys/sys/buf.h
@@ -292,16 +292,14 @@ struct buf {
/*
* Buffer locking
*/
-extern const char *buf_wmesg; /* Default buffer lock message */
-#define BUF_WMESG "bufwait"
#include <sys/proc.h> /* XXX for curthread */
#include <sys/mutex.h>
/*
* Initialize a lock.
*/
-#define BUF_LOCKINIT(bp) \
- lockinit(&(bp)->b_lock, PRIBIO + 4, buf_wmesg, 0, LK_NEW)
+#define BUF_LOCKINIT(bp, wmesg) \
+ lockinit(&(bp)->b_lock, PRIBIO + 4, wmesg, 0, LK_NEW)
/*
*
* Get a lock sleeping non-interruptably until it becomes available.
diff --git a/sys/vm/vm_pager.c b/sys/vm/vm_pager.c
index 6a186156b616..7dba1c45143d 100644
--- a/sys/vm/vm_pager.c
+++ b/sys/vm/vm_pager.c
@@ -489,6 +489,8 @@ pbuf_dtor(void *mem, int size, void *arg)
BUF_UNLOCK(bp);
}
+static const char pbuf_wmesg[] = "pbufwait";
+
static int
pbuf_init(void *mem, int size, int flags)
{
@@ -498,7 +500,7 @@ pbuf_init(void *mem, int size, int flags)
if (bp->b_kvabase == NULL)
return (ENOMEM);
bp->b_kvasize = ptoa(PBUF_PAGES);
- BUF_LOCKINIT(bp);
+ BUF_LOCKINIT(bp, pbuf_wmesg);
LIST_INIT(&bp->b_dep);
bp->b_rcred = bp->b_wcred = NOCRED;
bp->b_xflags = 0;