Module Name:    src
Committed By:   riastradh
Date:           Wed Apr  1 22:51:33 UTC 2015

Modified Files:
        src/share/man/man9: wapbl.9

Log Message:
Clarify what wapbl_jlock_assert and wapbl_junlock_assert mean.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/share/man/man9/wapbl.9

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/share/man/man9/wapbl.9
diff -u src/share/man/man9/wapbl.9:1.9 src/share/man/man9/wapbl.9:1.10
--- src/share/man/man9/wapbl.9:1.9	Tue Mar 31 00:03:58 2015
+++ src/share/man/man9/wapbl.9	Wed Apr  1 22:51:33 2015
@@ -1,4 +1,4 @@
-.\"	$NetBSD: wapbl.9,v 1.9 2015/03/31 00:03:58 riastradh Exp $
+.\"	$NetBSD: wapbl.9,v 1.10 2015/04/01 22:51:33 riastradh Exp $
 .\"
 .\" Copyright (c) 2015 The NetBSD Foundation, Inc.
 .\" All rights reserved.
@@ -168,9 +168,9 @@ Either all writes issued between
 and
 .Fn wapbl_end
 will complete, or none of them will.
-File systems can assert that the transaction should be locked with
+File systems can assert that the transaction is locked with
 .Fn wapbl_jlock_assert ,
-or unlocked, with
+or not exclusively locked, with
 .Fn wapbl_junlock_assert .
 .Pp
 If a file system requires multiple transactions to initialize an
@@ -399,8 +399,33 @@ that was given to
 .Fn wapbl_start .
 .It Fn wapbl_jlock_assert wl
 Assert that the current transaction is locked.
+.Pp
+Note that it might not be locked by the current thread: this assertion
+passes if
+.Em any
+thread has it locked.
 .It Fn wapbl_junlock_assert wl
-Assert that the current transaction is unlocked.
+Assert that the current transaction is not exclusively locked by the
+current thread.
+.Pp
+Users of
+.Nm
+observe exclusive locks only in the
+.Fa flushfn
+and
+.Fa flushabortfn
+callbacks to
+.Fn wapbl_start .
+Outside of such contexts, the transaction is never exclusively locked,
+even between
+.Fn wapbl_begin
+and
+.Fn wapbl_end .
+.Pp
+There is no way to assert that the current transaction is not locked at
+all -- i.e., that the caller may lock the transaction with
+.Fn wapbl_begin
+without danger of deadlock.
 .El
 .Sh CODE REFERENCES
 The
@@ -465,6 +490,13 @@ occur in a single transaction -- there i
 block allocations if the write fails in the middle, e.g. because of a
 fault in the middle of the user buffer.
 .Pp
+.Fn wapbl_jlock_assert
+does not guarantee that the current thread has the current transaction
+locked.
+.Fn wapbl_junlock_assert
+does not guarantee that the current thread does not have the current
+transaction locked at all.
+.Pp
 There is only one
 .Nm
 transaction for each file system at any given time, and only one

Reply via email to