aboutsummaryrefslogtreecommitdiffhomepage
path: root/container/vfs/unfold.go
diff options
context:
space:
mode:
Diffstat (limited to 'container/vfs/unfold.go')
-rw-r--r--container/vfs/unfold.go10
1 files changed, 8 insertions, 2 deletions
diff --git a/container/vfs/unfold.go b/container/vfs/unfold.go
index ca0e37b7..d63f0a9f 100644
--- a/container/vfs/unfold.go
+++ b/container/vfs/unfold.go
@@ -4,9 +4,14 @@ import (
"iter"
"path"
"strings"
- "syscall"
)
+type UnfoldTargetError string
+
+func (e UnfoldTargetError) Error() string {
+ return "mount point " + string(e) + " never appeared in mountinfo"
+}
+
// MountInfoNode positions a [MountInfoEntry] in its mount hierarchy.
type MountInfoNode struct {
*MountInfoEntry
@@ -65,7 +70,8 @@ func (d *MountInfoDecoder) Unfold(target string) (*MountInfoNode, error) {
}
if targetIndex == -1 {
- return nil, syscall.ESTALE
+ // target does not exist in parsed mountinfo
+ return nil, &DecoderError{Op: "unfold", Line: -1, Err: UnfoldTargetError(targetClean)}
}
for _, cur := range mountinfo {