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. |
||
---|---|---|
.. | ||
args.go | ||
ctlsock_interface.go | ||
file_allocate_truncate.go | ||
file_holes.go | ||
file.go | ||
fs_dir.go | ||
fs.go | ||
names.go | ||
xattr_darwin.go | ||
xattr_linux_unit_test.go | ||
xattr_linux.go | ||
xattr_unit_test.go | ||
xattr.go |