code: func (mb *MBuf) Seek(offset int64, whence int) (int64, error) {
  	switch whence {
  	case 0: // relative to beginning
  		if offset == 0 {
  			mb.rbuf = 0
  			mb.rp = 0
  			return 0, nil
  		}
  	case 1: // relative to current position
  		if offset == 0 {
  			for i := 0; i < mb.rbuf; i++ {
  				offset += int64(len(mb.buffers[i]))
  			}
  			offset += int64(mb.rp)
  			return offset, nil
  		}
  
  	case 2: // relative to the end
  		if offset == 0 {
  			for i := 0; i < len(mb.buffers); i++ {
  				offset += int64(len(mb.buffers[i]))
  			}
  			mb.rbuf = len(mb.buffers)
  			mb.rp = 0
  			return offset, nil
  		}
  	}
  
  	log.Errorf("Seek %d %d", offset, whence)
  	panic(fuse.EINVAL)
  
  	return 0, fuse.EINVAL
  }
docs: // seek only seeks the reader