summaryrefslogtreecommitdiff
path: root/internal/eventloop.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/eventloop.go')
-rw-r--r--internal/eventloop.go7
1 files changed, 5 insertions, 2 deletions
diff --git a/internal/eventloop.go b/internal/eventloop.go
index c5467ec..8d5a8b0 100644
--- a/internal/eventloop.go
+++ b/internal/eventloop.go
@@ -232,6 +232,11 @@ func (e *eventLoop) tracepointExited(exitEv event.Event, ch chan<- *event.Pair)
case *PathEvent:
if ep.EnterEv.GetTraceId().Name() == sysEnterNameToHandleAtName {
+ retEv, ok := ep.ExitEv.(*types.RetEvent)
+ if !ok || retEv.Ret < 0 {
+ ep.Recycle()
+ return
+ }
pathEv := ep.EnterEv.(*PathEvent)
pathname := types.StringValue(pathEv.Pathname[:])
e.pendingHandles[ep.EnterEv.GetTid()] = pathname
@@ -411,11 +416,9 @@ func (e *eventLoop) tracepointExited(exitEv event.Event, ch chan<- *event.Pair)
}
// TODO: implement copy_file_range
// TODO: open_by_handle_at
- // TODO: name_to_handle_at
// TODO: mmap, msync...
// TODO: getcwd?
// TODO: sync_file_range
- // TODO: io_uring_enter/io_uring_register are captured without fd arguments.
prevPairTime, _ := e.prevPairTimes[ep.EnterEv.GetTid()]
ep.CalculateDurations(prevPairTime)