Skip to content

Commit d4bcef4

Browse files
committed
improve error handling in ReadFile
Signed-off-by: Tonis Tiigi <[email protected]>
1 parent 38040ae commit d4bcef4

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

cache/util/fsutil.go

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -62,22 +62,20 @@ func ReadFile(ctx context.Context, mount snapshot.Mountable, req ReadRequest) ([
6262
// The filename here is internal to the mount, so we can restore
6363
// the request base path for error reporting.
6464
// See os.DirFS.Open for details.
65-
err.(*os.PathError).Path = req.Filename
65+
if pe, ok := err.(*os.PathError); ok {
66+
pe.Path = req.Filename
67+
}
6668
return errors.WithStack(err)
6769
}
70+
defer f.Close()
6871

69-
if req.Range == nil {
70-
dt, err = io.ReadAll(f)
71-
f.Close()
72-
if err != nil {
73-
return errors.WithStack(err)
74-
}
75-
} else {
76-
dt, err = io.ReadAll(io.NewSectionReader(f, int64(req.Range.Offset), int64(req.Range.Length)))
77-
f.Close()
78-
if err != nil {
79-
return errors.WithStack(err)
80-
}
72+
var rdr io.Reader = f
73+
if req.Range != nil {
74+
rdr = io.NewSectionReader(f, int64(req.Range.Offset), int64(req.Range.Length))
75+
}
76+
dt, err = io.ReadAll(rdr)
77+
if err != nil {
78+
return errors.WithStack(err)
8179
}
8280
return nil
8381
})

0 commit comments

Comments
 (0)