Do not clear merkle files when creating dentry

The dentry for each file/directory can be created/destroyed multiple
times during sandbox lifetime. We should not clear the Merkle file each
time a dentry is created.

PiperOrigin-RevId: 390277107
This commit is contained in:
Chong Cai
2021-08-11 20:11:19 -07:00
committed by gVisor bot
parent 5456fa6477
commit 4249ba8506
-17
View File
@@ -595,23 +595,6 @@ func (fs *filesystem) lookupAndVerifyLocked(ctx context.Context, parent *dentry,
}
}
// Clear the Merkle tree file if they are to be generated at runtime.
// TODO(b/182315468): Optimize the Merkle tree generate process to
// allow only updating certain files/directories.
if fs.allowRuntimeEnable {
childMerkleFD, err := vfsObj.OpenAt(ctx, fs.creds, &vfs.PathOperation{
Root: childMerkleVD,
Start: childMerkleVD,
}, &vfs.OpenOptions{
Flags: linux.O_RDWR | linux.O_TRUNC,
Mode: 0644,
})
if err != nil {
return nil, err
}
childMerkleFD.DecRef(ctx)
}
// The dentry needs to be cleaned up if any error occurs. IncRef will be
// called if a verity child dentry is successfully created.
defer childMerkleVD.DecRef(ctx)