Skip to content

Commit 73cd8b3

Browse files
Merge pull request #3222 from ipfs/kevina/add-no-pin-lock
Adder: Don't hold the PinLock when not pinning.
2 parents 98fdffa + 7bf30c3 commit 73cd8b3

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

core/coreunix/add.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -349,9 +349,13 @@ func (adder *Adder) addNode(node *dag.Node, path string) error {
349349

350350
// Add the given file while respecting the adder.
351351
func (adder *Adder) AddFile(file files.File) error {
352-
adder.unlocker = adder.blockstore.PinLock()
352+
if adder.Pin {
353+
adder.unlocker = adder.blockstore.PinLock()
354+
}
353355
defer func() {
354-
adder.unlocker.Unlock()
356+
if adder.unlocker != nil {
357+
adder.unlocker.Unlock()
358+
}
355359
}()
356360

357361
return adder.addFile(file)
@@ -432,7 +436,7 @@ func (adder *Adder) addDir(dir files.File) error {
432436
}
433437

434438
func (adder *Adder) maybePauseForGC() error {
435-
if adder.blockstore.GCRequested() {
439+
if adder.unlocker != nil && adder.blockstore.GCRequested() {
436440
err := adder.PinRoot()
437441
if err != nil {
438442
return err

0 commit comments

Comments
 (0)