Skip to content

Commit ec061c8

Browse files
magik6krvagg
authored andcommitted
park: don't declare nonexistent parked pieces (#609)
* park: don't declare nonexistent parked pieces * park: call ensureOneCopy for good measure
1 parent b79a585 commit ec061c8

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

lib/ffi/piece_funcs.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,15 @@ import (
1414

1515
func (sb *SealCalls) WritePiece(ctx context.Context, taskID *harmonytask.TaskID, pieceID storiface.PieceNumber, size int64, data io.Reader, storageType storiface.PathType) error {
1616
// Use storageType in AcquireSector
17-
paths, _, done, err := sb.Sectors.AcquireSector(ctx, taskID, pieceID.Ref(), storiface.FTNone, storiface.FTPiece, storageType)
17+
paths, pathIDs, done, err := sb.Sectors.AcquireSector(ctx, taskID, pieceID.Ref(), storiface.FTNone, storiface.FTPiece, storageType)
1818
if err != nil {
1919
return err
2020
}
21-
defer done()
21+
22+
skipDeclare := storiface.FTPiece
23+
defer func() {
24+
done(skipDeclare)
25+
}()
2226

2327
dest := paths.Piece
2428
tempDest := dest + storiface.TempSuffix
@@ -62,7 +66,13 @@ func (sb *SealCalls) WritePiece(ctx context.Context, taskID *harmonytask.TaskID,
6266
return xerrors.Errorf("rename temp piece to dest %s -> %s: %w", tempDest, dest, err)
6367
}
6468

69+
skipDeclare = storiface.FTNone
6570
removeTemp = false
71+
72+
if err := sb.ensureOneCopy(ctx, pieceID.Ref().ID, pathIDs, storiface.FTPiece); err != nil {
73+
return xerrors.Errorf("ensure one copy: %w", err)
74+
}
75+
6676
return nil
6777
}
6878

0 commit comments

Comments
 (0)