diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2022-03-30 19:23:26 +0000 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2022-03-30 19:23:26 +0000 |
commit | f05b8af71e41c37d868986b5147879fc5a437dbe (patch) | |
tree | b7567330d8599143040cf8d78085f52e5a828018 /sys/src/libregexp/regexec.c | |
parent | 12802b94c69faade31c7196b7f4fb7ef34182cd3 (diff) |
devsd: cache SDunit pointer in Chan.aux, improve error handling
Avoid calling sdgetdev() for every I/O. Instead,
put the SDunit pointer for #S/sdXX/* files in Chan.aux
and keep a reference to SDev between sdopen()/sdclose().
This avoids having to do the sdindex() lookup and
qlock(),incref(),decref() on every read/write
operation. Removal of SDev's is quite rare and only
can happen with pcmcia ide controllers, and i assume
that for that we can assume thet fileservers having
been exited properly and closed their files before
we attempt to remove a device.
The rest is improving waserror() codepaths, making
sure we release the locks for any of the interface
callbacks (verify/online).
Also get rid of tas() and instead only change the
unit's rawopen flag while holding raw qlock.
Diffstat (limited to 'sys/src/libregexp/regexec.c')
0 files changed, 0 insertions, 0 deletions