diff --git a/client/daemon/storage/local_storage.go b/client/daemon/storage/local_storage.go index be0644310..329f13347 100644 --- a/client/daemon/storage/local_storage.go +++ b/client/daemon/storage/local_storage.go @@ -505,10 +505,6 @@ func (t *localTaskStore) CanReclaim() bool { return false } -func (t *localTaskStore) MarkInvalid() { - t.invalid.Store(true) -} - // MarkReclaim will try to invoke gcCallback (normal leave peer task) func (t *localTaskStore) MarkReclaim() { if t.reclaimMarked.Load() { diff --git a/client/daemon/storage/local_storage_subtask.go b/client/daemon/storage/local_storage_subtask.go index 4d238d379..4b1ed7cf2 100644 --- a/client/daemon/storage/local_storage_subtask.go +++ b/client/daemon/storage/local_storage_subtask.go @@ -391,20 +391,16 @@ func (t *localSubTaskStore) CanReclaim() bool { return false } -func (t *localSubTaskStore) MarkInvalid() { - if t.parent.Done || t.invalid.Load() { - return - } - t.parent.MarkInvalid() -} - func (t *localSubTaskStore) MarkReclaim() { + // gc this subtask with gcCallback from parent t.parent.gcCallback(CommonTaskRequest{ PeerID: t.PeerID, TaskID: t.TaskID, }) t.Infof("sub task %s/%s will be reclaimed, marked", t.TaskID, t.PeerID) + t.parent.Lock() + // remove subtask from parent delete(t.parent.subtasks, PeerTaskMetadata{ PeerID: t.PeerID, TaskID: t.TaskID, diff --git a/client/daemon/storage/mocks/stroage_manager_mock.go b/client/daemon/storage/mocks/stroage_manager_mock.go index 53a52def8..cc19423bb 100644 --- a/client/daemon/storage/mocks/stroage_manager_mock.go +++ b/client/daemon/storage/mocks/stroage_manager_mock.go @@ -224,18 +224,6 @@ func (mr *MockReclaimerMockRecorder) CanReclaim() *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CanReclaim", reflect.TypeOf((*MockReclaimer)(nil).CanReclaim)) } -// MarkInvalid mocks base method. -func (m *MockReclaimer) MarkInvalid() { - m.ctrl.T.Helper() - m.ctrl.Call(m, "MarkInvalid") -} - -// MarkInvalid indicates an expected call of MarkInvalid. -func (mr *MockReclaimerMockRecorder) MarkInvalid() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MarkInvalid", reflect.TypeOf((*MockReclaimer)(nil).MarkInvalid)) -} - // MarkReclaim mocks base method. func (m *MockReclaimer) MarkReclaim() { m.ctrl.T.Helper() diff --git a/client/daemon/storage/storage_manager.go b/client/daemon/storage/storage_manager.go index 9117ac5fb..db3e7f24b 100644 --- a/client/daemon/storage/storage_manager.go +++ b/client/daemon/storage/storage_manager.go @@ -83,9 +83,6 @@ type Reclaimer interface { // MarkReclaim marks the storage which will be reclaimed MarkReclaim() - // marks the special storage invalid, that will reclaim next gc round - MarkInvalid() - // Reclaim reclaims the storage Reclaim() error }