aboutsummaryrefslogtreecommitdiff
path: root/tests/stress_tests
diff options
context:
space:
mode:
authormax2026-08-17 01:15:41 +0000
committerJakob Unterwurzacher2026-08-30 22:49:34 +0200
commit9c2130d6c2e54c45c6787fbc49a896a8544a5e47 (patch)
tree8a228b71212c0de93cc9ea60e9e53b5379569faa /tests/stress_tests
parent790362e8f8eabd1bdf75f98328daf94cf623c600 (diff)
fusefrontend: take ContentLock for truncate through node.SetattrHEADmaster
node.Setattr opens its own file handle and called truncate directly, without ContentLock. truncate ends in doWrite, which documents that the caller holds that lock, and file.Setattr and Allocate both take it. Besides leaving a path truncate unserialized against concurrent writes, this skipped the write-operation counter that ContentLock.Lock() increments. isConsecutiveWrite() reads that counter to notice foreign modifications, so an already-open handle kept assuming its next write appends, skipped writePadHole() and grew the file past a short last block. That block no longer decrypted, and every later operation on the file failed with EIO. Fixes #1024
Diffstat (limited to 'tests/stress_tests')
0 files changed, 0 insertions, 0 deletions