summaryrefslogtreecommitdiff
path: root/internal/syscallcompat/open_nofollow.go
diff options
context:
space:
mode:
authorJakob Unterwurzacher2018-07-22 22:29:22 +0200
committerJakob Unterwurzacher2018-07-22 22:29:22 +0200
commitf316f1b2df47dca651174e574ab072f6b46c0b01 (patch)
tree16176cb053718ba6b2815d08df44040f75d3fdae /internal/syscallcompat/open_nofollow.go
parentc70df522d2a78f3152fa61511bed9fafa7c495a3 (diff)
fusefronted: disallow writes running concurrently with reads
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.
Diffstat (limited to 'internal/syscallcompat/open_nofollow.go')
0 files changed, 0 insertions, 0 deletions