code: func (s *Server) WriteV3(p *Packet) (interface{}, error) {
  	req := new(RequestWriteV3)
  	err := UnmarshalBinary(p.Payload, req)
  	if err != nil {
  		return nil, err
  	}
  
  	session, err := s.getSession(p)
  	if err != nil {
  		return nil, err
  	}
  
  	session.mu.Lock()
  	file, ok := session.files[req.Handle]
  	session.mu.Unlock()
  
  	if !ok {
  		return nil, &Status{Code: StatusInvalidHandle}
  	}
  
  	n, err := file.Write(req.Payload)
  	if err != nil {
  		return nil, err
  	}
  
  	res := &ReplyWriteV3{
  		ActualSize: uint32(n),
  	}
  
  	return res, nil
  }
docs: // WriteV3 handles OpWriteV3 requests