| 474 | } |
| 475 | |
| 476 | func (lom *LOM) Remove(force ...bool) (err error) { |
| 477 | // making "rlock" exception to be able to (forcefully) remove corrupted obj in the GET path |
| 478 | debug.AssertFunc(func() bool { |
| 479 | rc, exclusive := lom.IsLocked() |
| 480 | return exclusive || (len(force) > 0 && force[0] && rc > 0) |
| 481 | }) |
| 482 | lom.Uncache(true /*delDirty*/) |
| 483 | err = cos.RemoveFile(lom.FQN) |
| 484 | if os.IsNotExist(err) { |
| 485 | err = nil |
| 486 | } |
| 487 | for copyFQN := range lom.md.copies { |
| 488 | if erc := cos.RemoveFile(copyFQN); erc != nil && !os.IsNotExist(erc) { |
| 489 | err = erc |
| 490 | } |
| 491 | } |
| 492 | lom.md.bckID = 0 |
| 493 | return |
| 494 | } |
| 495 | |
| 496 | // |
| 497 | // evict lom cache |