code: func (h *mutFileHandle) Flush(ctx context.Context, req *fuse.FlushRequest) error {
  	if h.tmp == nil {
  		Logger.Printf("Flush called on camli mutFileHandle without a tempfile set")
  		return fuse.EIO
  	}
  	_, err := h.tmp.Seek(0, 0)
  	if err != nil {
  		Logger.Println("mutFileHandle.Flush:", err)
  		return fuse.EIO
  	}
  	var n int64
  	br, err := schema.WriteFileFromReader(ctx, h.f.fs.client, h.f.name, readerutil.CountingReader{Reader: h.tmp, N: &n})
  	if err != nil {
  		Logger.Println("mutFileHandle.Flush:", err)
  		return fuse.EIO
  	}
  	err = h.f.setContent(ctx, br, n)
  	if err != nil {
  		Logger.Printf("mutFileHandle.Flush: %v", err)
  		return fuse.EIO
  	}
  
  	return nil
  }
docs: // Flush is called to let the file system clean up any data buffers
  // and to pass any errors in the process of closing a file to the user
  // application.
  //
  // Flush *may* be called more than once in the case where a file is
  // opened more than once, but it's not possible to detect from the
  // call itself whether this is a final flush.
  //
  // This is generally the last opportunity to finalize data and the
  // return value sets the return value of the Close that led to the
  // calling of Flush.
  //
  // Note that this is distinct from Fsync -- which is a user-requested
  // flush (fsync, etc...)