package main
import (
+ "errors"
"log"
"time"
)
for item := range trashq.NextItem {
trashRequest := item.(TrashRequest)
TrashItem(trashRequest)
+ trashq.DoneItem <- struct{}{}
}
}
blob_signature_ttl)
return
}
+
for _, volume := range KeepVM.AllWritable() {
mtime, err := volume.Mtime(trashRequest.Locator)
- if err != nil || trashRequest.BlockMtime != mtime.Unix() {
+ if err != nil {
+ log.Printf("%v Delete(%v): %v", volume, trashRequest.Locator, err)
+ continue
+ }
+ if trashRequest.BlockMtime != mtime.Unix() {
+ log.Printf("%v Delete(%v): mtime on volume is %v does not match trash list value %v", volume, trashRequest.Locator, mtime.Unix(), trashRequest.BlockMtime)
continue
}
- err = volume.Delete(trashRequest.Locator)
+
+ if never_delete {
+ err = errors.New("did not delete block because never_delete is true")
+ } else {
+ err = volume.Delete(trashRequest.Locator)
+ }
+
if err != nil {
log.Printf("%v Delete(%v): %v", volume, trashRequest.Locator, err)
- continue
+ } else {
+ log.Printf("%v Delete(%v) OK", volume, trashRequest.Locator)
}
- log.Printf("%v Delete(%v) OK", volume, trashRequest.Locator)
}
}