goGFS
goGFS copied to clipboard
Unused variable lock in chunkserver.go
It seems that we need to do something when lock variable is true. Otherwise, how can we make sure append operation is different from write operations?
// writeChunk writes data at offset to a chunk at disk
func (cs *ChunkServer) writeChunk(handle gfs.ChunkHandle, data []byte, offset gfs.Offset, lock bool) error {
cs.lock.RLock()
ck := cs.chunk[handle]
cs.lock.RUnlock()
// ck is already locked in top caller
newLen := offset + gfs.Offset(len(data))
if newLen > ck.length {
ck.length = newLen
}
if newLen > gfs.MaxChunkSize {
log.Fatal("new length > gfs.MaxChunkSize")
}
log.Infof("Server %v : write to chunk %v at %v len %v", cs.address, handle, offset, len(data))
filename := path.Join(cs.rootDir, fmt.Sprintf("chunk%v.chk", handle))
file, err := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE, FilePerm)
if err != nil {
return err
}
defer file.Close()
_, err = file.WriteAt(data, int64(offset))
if err != nil {
return err
}
return nil
}