summaryrefslogtreecommitdiffhomepage
path: root/pkg/sentry/fs/mount.go
diff options
context:
space:
mode:
authorNicolas Lacasse <nlacasse@google.com>2018-07-19 14:56:42 -0700
committerShentubot <shentubot@google.com>2018-07-19 14:57:52 -0700
commitbe431d0934b8d33dcb1909527e0f9ed7eb504b6f (patch)
tree4071eb98e3ecdfa6abd77552c7e5426469027cd8 /pkg/sentry/fs/mount.go
parentea371031968095209793ea39007cfdf5a9d66d10 (diff)
fs: Pass context to Revalidate() function.
The current revalidation logic is very simple and does not do much introspection of the dirent being revalidated (other than looking at the type of file). Fancier revalidation logic is coming soon, and we need to be able to look at the cached and uncached attributes of a given dirent, and we need a context to perform some of these operations. PiperOrigin-RevId: 205307351 Change-Id: If17ea1c631d8f9489c0e05a263e23d7a8a3bf159
Diffstat (limited to 'pkg/sentry/fs/mount.go')
-rw-r--r--pkg/sentry/fs/mount.go14
1 files changed, 8 insertions, 6 deletions
diff --git a/pkg/sentry/fs/mount.go b/pkg/sentry/fs/mount.go
index 1d05a36a7..eb1897174 100644
--- a/pkg/sentry/fs/mount.go
+++ b/pkg/sentry/fs/mount.go
@@ -21,17 +21,19 @@ import (
"sync/atomic"
"gvisor.googlesource.com/gvisor/pkg/refs"
+ "gvisor.googlesource.com/gvisor/pkg/sentry/context"
)
// DirentOperations provide file systems greater control over how long a Dirent stays pinned
// in core. Implementations must not take Dirent.mu.
type DirentOperations interface {
- // Revalidate returns true if the Dirent is stale and its InodeOperations needs to be reloaded. Revalidate
- // will never be called on a Dirent that is mounted.
- Revalidate(dirent *Dirent) bool
+ // Revalidate returns true if the Dirent is stale and its
+ // InodeOperations needs to be reloaded. Revalidate will never be
+ // called on a Dirent that is mounted.
+ Revalidate(ctx context.Context, dirent *Dirent) bool
- // Keep returns true if the Dirent should be kept in memory for as long as possible
- // beyond any active references.
+ // Keep returns true if the Dirent should be kept in memory for as long
+ // as possible beyond any active references.
Keep(dirent *Dirent) bool
}
@@ -263,7 +265,7 @@ type SimpleMountSourceOperations struct {
}
// Revalidate implements MountSourceOperations.Revalidate.
-func (*SimpleMountSourceOperations) Revalidate(*Dirent) bool {
+func (*SimpleMountSourceOperations) Revalidate(context.Context, *Dirent) bool {
return false
}