diff options
author | Nicolas Lacasse <nlacasse@google.com> | 2018-07-19 14:56:42 -0700 |
---|---|---|
committer | Shentubot <shentubot@google.com> | 2018-07-19 14:57:52 -0700 |
commit | be431d0934b8d33dcb1909527e0f9ed7eb504b6f (patch) | |
tree | 4071eb98e3ecdfa6abd77552c7e5426469027cd8 /pkg/sentry/fs/mount.go | |
parent | ea371031968095209793ea39007cfdf5a9d66d10 (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.go | 14 |
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 } |