summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/fs.md18
1 files changed, 11 insertions, 7 deletions
diff --git a/docs/fs.md b/docs/fs.md
index 428cc84c..5836215f 100644
--- a/docs/fs.md
+++ b/docs/fs.md
@@ -625,18 +625,22 @@ mapping the serial it had to the one it has now, and `restoredcol <old>
for every line the editor says (with `verbose` on, that includes each
builtin announcing itself as it runs, on purpose: the log says which ran --
unless the builtin then says something of its own that starts with its
-name, `Kill: nothing running`, which takes the announcement's place; a line
-said again word for word before any follower read it is that line counted,
-`msg 3 Undo: nothing to undo (x40)`, as `err` is; its serial is the pane it ran at, `-` when the keyboard was on a
+name, `Kill: nothing running`, which takes the announcement's place; a
+builtin that fails a ctl write is logged by that write's `err` alone, no
+announcement and no `msg`, so the same failure again is the same record
+again; a line said again word for word is counted, `msg 3 Undo: nothing to
+undo (x40)`, as `err` is (below); its serial is the pane it ran at, `-` when the keyboard was on a
column or workspace tag, or the line came to the root's ctl, `/tagexec` or
a column's ctl or exec), and `err <serial|->
<file>: <why>` for every write or truncation the tree refused or that
failed -- through a mount a shell sees only the errno its kernel mapped the
reply to, usually `Invalid argument`, and this is the reason (`err 3 addr:
-no match for regexp`). The same err again, before any follower has read
-the first, is that record counted (`err 3 addr: no match for regexp (x4)`),
-so a client retrying a failing write does not push the rest out of the
-ring; a follower that read it gets each repeat. Through a kernel mount a client sees only an errno, which 9ns reads from the
+no match for regexp`). A record said again word for word, straight after
+itself, is counted rather than repeated (`err 3 addr: no match for regexp
+(x4)`: four in all, counting the first), so a client retrying a failing
+write does not push the rest out of the ring. A record a follower has
+already read is never rewritten: the next repeat is a line of its own
+carrying the running total, `(x5)`, and counting goes on from there. Through a kernel mount a client sees only an errno, which 9ns reads from the
error's words (cloud9's 9ns/src/nine.zig, `enameToErrno`): a malformed write
-- an unknown or ill-formed control message, `bad address syntax`, `bad
regular expression` -- is EINVAL; a lock another open holds, EBUSY; a pane