@cryptotaxi247 / kubo / commits / 7bf30c311

Adder: Don't hold the PinLock when not pinning.

License: MIT Signed-off-by: Kevin Atkinson <k@kevina.org>

Kevin Atkinson committed Sep 7, 2016 at 02:24 UTC 7bf30c31115e1b85967636d0bba57d4cd17b4ff8
1 file changed +7 -3
core/coreunix/add.go
+7 -3
@@ -349,9 +349,13 @@ func (adder *Adder) addNode(node *dag.Node, path string) error {
349
350 // Add the given file while respecting the adder.
351 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 + }
355 defer func() {
354 - adder.unlocker.Unlock()
356 + if adder.unlocker != nil {
357 + adder.unlocker.Unlock()
358 + }
359 }()
360
361 return adder.addFile(file)
@@ -432,7 +436,7 @@ func (adder *Adder) addDir(dir files.File) error {
436 }
437
438 func (adder *Adder) maybePauseForGC() error {
435 - if adder.blockstore.GCRequested() {
439 + if adder.unlocker != nil && adder.blockstore.GCRequested() {
440 err := adder.PinRoot()
441 if err != nil {
442 return err