func()

in file.go [405:427]


func (f *File) truncate(sz int64) reason {
	const op = "txfile/truncate"
	const errMsg = "can not update file size"

	isMMapped := f.mapped != nil

	if isMMapped {
		if err := f.munmap(); err != nil {
			return f.errWrap(op, err).report(errMsg)
		}
	}

	if err := f.file.Truncate(sz); err != nil {
		return f.errWrap(op, err).report(errMsg)
	}

	if isMMapped {
		if err := f.mmap(); err != nil {
			return f.errWrap(op, err).report(errMsg)
		}
	}
	return nil
}