Skip to content

Commit e5175c2

Browse files
authored
Merge pull request #745 from elezar/fix-symlink-logging
Fix symlink resolution error message
2 parents 2987c4d + cdf39fb commit e5175c2

File tree

2 files changed

+4
-11
lines changed

2 files changed

+4
-11
lines changed

cmd/nvidia-cdi-hook/create-symlinks/create-symlinks.go

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -211,21 +211,14 @@ func changeRoot(current string, new string, path string) (string, error) {
211211
// Locate returns the link target of the specified filename or an empty slice if the
212212
// specified filename is not a symlink.
213213
func (m command) Locate(filename string) ([]string, error) {
214-
info, err := os.Lstat(filename)
214+
target, err := symlinks.Resolve(filename)
215215
if err != nil {
216-
return nil, fmt.Errorf("failed to get file info: %v", info)
216+
return nil, err
217217
}
218-
if info.Mode()&os.ModeSymlink == 0 {
218+
if target == filename {
219219
m.logger.Debugf("%v is not a symlink", filename)
220220
return nil, nil
221221
}
222-
223-
target, err := os.Readlink(filename)
224-
if err != nil {
225-
return nil, fmt.Errorf("error checking symlink: %v", err)
226-
}
227-
228222
m.logger.Debugf("Resolved link: '%v' => '%v'", filename, target)
229-
230223
return []string{target}, nil
231224
}

internal/lookup/symlinks/symlink.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import (
2525
func Resolve(filename string) (string, error) {
2626
info, err := os.Lstat(filename)
2727
if err != nil {
28-
return filename, fmt.Errorf("failed to get file info: %v", info)
28+
return filename, fmt.Errorf("failed to get file info: %w", err)
2929
}
3030
if info.Mode()&os.ModeSymlink == 0 {
3131
return filename, nil

0 commit comments

Comments
 (0)