diff options
author | Andrei Vagin <avagin@google.com> | 2020-11-13 01:49:36 -0800 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2020-11-13 01:51:24 -0800 |
commit | e869e2c7cddca0337b6dfb28584b05ee1b225a7f (patch) | |
tree | 47bf23885285f1a636a319eb27a76c5e92869ea3 | |
parent | cc1b20590cf4505e04b8c221d1d950e45110f5f0 (diff) |
fs/tmpfs: change regularFile.size atomically
PiperOrigin-RevId: 342221309
-rw-r--r-- | pkg/sentry/fsimpl/tmpfs/regular_file.go | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/pkg/sentry/fsimpl/tmpfs/regular_file.go b/pkg/sentry/fsimpl/tmpfs/regular_file.go index 98680fde9..f8e0cffb0 100644 --- a/pkg/sentry/fsimpl/tmpfs/regular_file.go +++ b/pkg/sentry/fsimpl/tmpfs/regular_file.go @@ -565,7 +565,7 @@ func (rw *regularFileReadWriter) ReadToBlocks(dsts safemem.BlockSeq) (uint64, er // WriteFromBlocks implements safemem.Writer.WriteFromBlocks. // -// Preconditions: inode.mu must be held. +// Preconditions: rw.file.inode.mu must be held. func (rw *regularFileReadWriter) WriteFromBlocks(srcs safemem.BlockSeq) (uint64, error) { // Hold dataMu so we can modify size. rw.file.dataMu.Lock() @@ -657,7 +657,7 @@ exitLoop: // If the write ends beyond the file's previous size, it causes the // file to grow. if rw.off > rw.file.size { - rw.file.size = rw.off + atomic.StoreUint64(&rw.file.size, rw.off) } return done, retErr |