Hold dataMu for writing in CachingInodeOperations.WriteOut.

fsutil.SyncDirtyAll mutates the DirtySet.

PiperOrigin-RevId: 236183349
Change-Id: I7e809d5b406ac843407e61eff17d81259a819b4f
This commit is contained in:
Jamie Liu
2019-02-28 13:14:43 -08:00
committed by Shentubot
parent 420a89acd3
commit 05d721f9ee
+2 -2
View File
@@ -322,9 +322,9 @@ func (c *CachingInodeOperations) WriteOut(ctx context.Context, inode *fs.Inode)
c.attrMu.Lock()
// Write dirty pages back.
c.dataMu.RLock()
c.dataMu.Lock()
err := SyncDirtyAll(ctx, &c.cache, &c.dirty, uint64(c.attr.Size), c.platform.Memory(), c.backingFile.WriteFromBlocksAt)
c.dataMu.RUnlock()
c.dataMu.Unlock()
if err != nil {
c.attrMu.Unlock()
return err