dedupe errors

This commit is contained in:
royalcat 2024-06-26 00:39:10 +03:00
parent d11fa31023
commit 3dcf27d900

View file

@ -118,12 +118,12 @@ func (s *fileStorage) dedupeFiles(ctx context.Context, paths []string) (deduped
srcF, err := os.Open(paths[0]) srcF, err := os.Open(paths[0])
if err != nil { if err != nil {
return deduped, err return deduped, fmt.Errorf("error opening file %s: %w", paths[0], err)
} }
defer srcF.Close() defer srcF.Close()
srcStat, err := srcF.Stat() srcStat, err := srcF.Stat()
if err != nil { if err != nil {
return deduped, err return deduped, fmt.Errorf("error stat file %s: %w", paths[0], err)
} }
srcFd := int(srcF.Fd()) srcFd := int(srcF.Fd())
@ -133,12 +133,12 @@ func (s *fileStorage) dedupeFiles(ctx context.Context, paths []string) (deduped
err = unix.Fstatfs(srcFd, &fsStat) err = unix.Fstatfs(srcFd, &fsStat)
if err != nil { if err != nil {
span.RecordError(err) span.RecordError(err)
return deduped, err return deduped, fmt.Errorf("error statfs file %s: %w", paths[0], err)
} }
srcHash, err := filehash(srcF) srcHash, err := filehash(srcF)
if err != nil { if err != nil {
return deduped, err return deduped, fmt.Errorf("error hashing file %s: %w", paths[0], err)
} }
if int64(fsStat.Bsize) > srcSize { // for btrfs it means file in residing in not deduplicatable metadata if int64(fsStat.Bsize) > srcSize { // for btrfs it means file in residing in not deduplicatable metadata
@ -162,13 +162,13 @@ func (s *fileStorage) dedupeFiles(ctx context.Context, paths []string) (deduped
destF, err := os.OpenFile(dst, os.O_RDWR, os.ModePerm) destF, err := os.OpenFile(dst, os.O_RDWR, os.ModePerm)
if err != nil { if err != nil {
return deduped, err return deduped, fmt.Errorf("error opening file %s: %w", dst, err)
} }
defer destF.Close() defer destF.Close()
dstHash, err := filehash(destF) dstHash, err := filehash(destF)
if err != nil { if err != nil {
return deduped, err return deduped, fmt.Errorf("error hashing file %s: %w", dst, err)
} }
if srcHash != dstHash { if srcHash != dstHash {
@ -199,7 +199,7 @@ func (s *fileStorage) dedupeFiles(ctx context.Context, paths []string) (deduped
err = unix.IoctlFileDedupeRange(srcFd, &rng) err = unix.IoctlFileDedupeRange(srcFd, &rng)
if err != nil { if err != nil {
return deduped, err return deduped, fmt.Errorf("error calling FIDEDUPERANGE: %w", err)
} }
for i := range rng.Info { for i := range rng.Info {
@ -223,7 +223,3 @@ func filehash(r io.Reader) ([20]byte, error) {
return sha1.Sum(buf), nil return sha1.Sum(buf), nil
} }
func ptr[D any](v D) *D {
return &v
}