mirror of
https://github.com/versity/scoutfs.git
synced 2026-07-26 10:02:58 +00:00
ae9e060fbfa887de3f76ca29d31596455273abb5
Back in ancient LSM times these functions to read and write the super block reused the bio functions that LSM segment IO used. Each IO would be performed with privately allocated pages and bios. When we got rid of the LSM code we got rid of the bio functions. It was quick and easy to transition super read/write to use buffer_heads. This introduced sharing of the super's buffer_head between readers and writers. First we saw concurrent readers being confused by the uptodate bit and added a bunch of complexity to coordinate use of the uptodate bit. Now we're seeing the writer copy its super for writing into the buffer that readers are using, causing crc failures on read. Let's not use buffer_heads anymore (always good advice). We added quick block functions to read and write small blocks with private pages and bios. Use those here to read and write the super so that readers and writers operate on their own buffers again. Signed-off-by: Zach Brown <zab@versity.com>
Description
No description provided
6.9 MiB
Languages
C
86.3%
Shell
10%
Roff
2.5%
TeX
0.8%
Makefile
0.4%