Переглянути джерело

Don't hard fail on sparse setup error

It seems this can fail in some casees, but proceed
with the download anyway.
Daniel Hiltgen 8 місяців тому
батько
коміт
2fa1db4345
3 змінених файлів з 5 додано та 7 видалено
  1. 1 3
      server/download.go
  2. 1 2
      server/sparse_common.go
  3. 3 2
      server/sparse_windows.go

+ 1 - 3
server/download.go

@@ -216,9 +216,7 @@ func (b *blobDownload) run(ctx context.Context, requestURL *url.URL, opts *regis
 		return err
 	}
 	defer file.Close()
-	if err := setSparse(file); err != nil {
-		return err
-	}
+	setSparse(file)
 
 	_ = file.Truncate(b.Total)
 

+ 1 - 2
server/sparse_common.go

@@ -4,6 +4,5 @@ package server
 
 import "os"
 
-func setSparse(file *os.File) error {
-	return nil
+func setSparse(*os.File) {
 }

+ 3 - 2
server/sparse_windows.go

@@ -6,8 +6,9 @@ import (
 	"golang.org/x/sys/windows"
 )
 
-func setSparse(file *os.File) error {
-	return windows.DeviceIoControl(
+func setSparse(file *os.File) {
+	// exFat (and other FS types) don't support sparse files, so ignore errors
+	windows.DeviceIoControl( //nolint:errcheck
 		windows.Handle(file.Fd()), windows.FSCTL_SET_SPARSE,
 		nil, 0,
 		nil, 0,