diff options
author | gVisor bot <gvisor-bot@google.com> | 2021-04-16 03:06:46 +0000 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2021-04-16 03:06:46 +0000 |
commit | 9b193c987c72e88efbc3d08455353f9d94c35505 (patch) | |
tree | 07d98ba24655b6da41c4c806cc1022de3d9fc7b4 /pkg/sentry/syscalls/linux/error.go | |
parent | 089ecc17d2bd0825f62246059d2d05fadff72d33 (diff) | |
parent | 14b7d775c950070378ea799a0b6b7907f67a1f1e (diff) |
Merge release-20210408.0-38-g14b7d775c (automated)
Diffstat (limited to 'pkg/sentry/syscalls/linux/error.go')
-rw-r--r-- | pkg/sentry/syscalls/linux/error.go | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/pkg/sentry/syscalls/linux/error.go b/pkg/sentry/syscalls/linux/error.go index efec93f73..37121186a 100644 --- a/pkg/sentry/syscalls/linux/error.go +++ b/pkg/sentry/syscalls/linux/error.go @@ -33,6 +33,14 @@ var ( partialResultOnce sync.Once ) +// incrementPartialResultMetric increments PartialResultMetric by calling +// Increment(). This is added as the func Do() which is called below requires +// us to pass a function which does not take any arguments, whereas Increment() +// takes a variadic number of arguments. +func incrementPartialResultMetric() { + partialResultMetric.Increment() +} + // HandleIOErrorVFS2 handles special error cases for partial results. For some // errors, we may consume the error and return only the partial read/write. // @@ -48,7 +56,7 @@ func HandleIOErrorVFS2(ctx context.Context, partialResult bool, ioerr, intr erro root := vfs.RootFromContext(ctx) name, _ := fs.PathnameWithDeleted(ctx, root, f.VirtualDentry()) log.Traceback("Invalid request partialResult %v and err (type %T) %v for %s operation on %q", partialResult, ioerr, ioerr, op, name) - partialResultOnce.Do(partialResultMetric.Increment) + partialResultOnce.Do(incrementPartialResultMetric) } return nil } @@ -66,7 +74,7 @@ func handleIOError(ctx context.Context, partialResult bool, ioerr, intr error, o // An unknown error is encountered with a partial read/write. name, _ := f.Dirent.FullName(nil /* ignore chroot */) log.Traceback("Invalid request partialResult %v and err (type %T) %v for %s operation on %q, %T", partialResult, ioerr, ioerr, op, name, f.FileOperations) - partialResultOnce.Do(partialResultMetric.Increment) + partialResultOnce.Do(incrementPartialResultMetric) } return nil } |