f316f1b2df
As uncovered by xfstests generic/465, concurrent reads and writes could lead to this, doRead 3015532: corrupt block #1039: stupidgcm: message authentication failed, as the read could pick up a block that has not yet been completely written - write() is not atomic! Now writes take ContentLock exclusively, while reads take it shared, meaning that multiple reads can run in parallel with each other, but not with a write. This also simplifies the file header locking. |
||
---|---|---|
.. | ||
configfile | ||
contentenc | ||
cryptocore | ||
ctlsock | ||
exitcodes | ||
fusefrontend | ||
fusefrontend_reverse | ||
nametransform | ||
openfiletable | ||
pathiv | ||
prefer_openssl | ||
readpassword | ||
serialize_reads | ||
siv_aead | ||
speed | ||
stupidgcm | ||
syscallcompat | ||
tlog |