fix(fs): nil interface not equal to nil (#971)

https://go.dev/doc/faq#nil_error
This commit is contained in:
j2rong4cn
2025-08-03 23:51:11 +08:00
committed by GitHub
parent 6b096bcad4
commit 1208bd0a83
2 changed files with 8 additions and 8 deletions

View File

@@ -371,7 +371,7 @@ func DriverExtract(ctx context.Context, storage driver.Driver, path string, args
return link.Link, link.Obj, nil return link.Link, link.Obj, nil
} }
var forget utils.CloseFunc var forget any
fn := func() (*extractLink, error) { fn := func() (*extractLink, error) {
link, err := driverExtract(ctx, storage, path, args) link, err := driverExtract(ctx, storage, path, args)
if err != nil { if err != nil {
@@ -380,7 +380,7 @@ func DriverExtract(ctx context.Context, storage driver.Driver, path string, args
if link.Link.Expiration != nil { if link.Link.Expiration != nil {
extractCache.Set(key, link, cache.WithEx[*extractLink](*link.Link.Expiration)) extractCache.Set(key, link, cache.WithEx[*extractLink](*link.Link.Expiration))
} }
link.Add(forget) link.AddIfCloser(forget)
return link, nil return link, nil
} }
@@ -392,13 +392,13 @@ func DriverExtract(ctx context.Context, storage driver.Driver, path string, args
return link.Link, link.Obj, nil return link.Link, link.Obj, nil
} }
forget = func() error { forget = utils.CloseFunc(func() error {
if forget != nil { if forget != nil {
forget = nil forget = nil
linkG.Forget(key) linkG.Forget(key)
} }
return nil return nil
} })
link, err, _ := extractG.Do(key, fn) link, err, _ := extractG.Do(key, fn)
if err == nil && !link.AcquireReference() { if err == nil && !link.AcquireReference() {
link, err, _ = extractG.Do(key, fn) link, err, _ = extractG.Do(key, fn)

View File

@@ -291,7 +291,7 @@ func Link(ctx context.Context, storage driver.Driver, path string, args model.Li
return link, file, nil return link, file, nil
} }
var forget utils.CloseFunc var forget any
fn := func() (*model.Link, error) { fn := func() (*model.Link, error) {
link, err := storage.Link(ctx, file, args) link, err := storage.Link(ctx, file, args)
if err != nil { if err != nil {
@@ -300,7 +300,7 @@ func Link(ctx context.Context, storage driver.Driver, path string, args model.Li
if link.Expiration != nil { if link.Expiration != nil {
linkCache.Set(key, link, cache.WithEx[*model.Link](*link.Expiration)) linkCache.Set(key, link, cache.WithEx[*model.Link](*link.Expiration))
} }
link.Add(forget) link.AddIfCloser(forget)
return link, nil return link, nil
} }
@@ -312,13 +312,13 @@ func Link(ctx context.Context, storage driver.Driver, path string, args model.Li
return link, file, err return link, file, err
} }
forget = func() error { forget = utils.CloseFunc(func() error {
if forget != nil { if forget != nil {
forget = nil forget = nil
linkG.Forget(key) linkG.Forget(key)
} }
return nil return nil
} })
link, err, _ := linkG.Do(key, fn) link, err, _ := linkG.Do(key, fn)
if err == nil && !link.AcquireReference() { if err == nil && !link.AcquireReference() {
link, err, _ = linkG.Do(key, fn) link, err, _ = linkG.Do(key, fn)