git: 78d27f25c78a - stable/13 - Use dedicated lock name for pbufs

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Mon, 07 Feb 2022 09:50:49 UTC
The branch stable/13 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=78d27f25c78afe5efd5b90120ca728f7be0c4d88

commit 78d27f25c78afe5efd5b90120ca728f7be0c4d88
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2022-01-23 00:24:12 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2022-02-07 09:38:49 +0000

    Use dedicated lock name for pbufs
    
    (cherry picked from commit 531f8cfea06b689b6c17219faa3e67977958b0c0)
---
 sys/kern/vfs_bio.c | 14 +++++++-------
 sys/sys/buf.h      |  6 ++----
 sys/vm/vm_pager.c  |  4 +++-
 3 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c
index a3cec5d7ec74..aaf7b69d47db 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)
 {
@@ -1175,6 +1169,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)
@@ -1205,7 +1205,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 86f5fbef7c92..e1b0450e2613 100644
--- a/sys/sys/buf.h
+++ b/sys/sys/buf.h
@@ -291,16 +291,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 791fc1ebfe11..d81e5ec8692d 100644
--- a/sys/vm/vm_pager.c
+++ b/sys/vm/vm_pager.c
@@ -480,6 +480,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)
 {
@@ -489,7 +491,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;