code: func (p *Provider) ListHaves(vol volume.Volume) ([]json.RawMessage, error) {
  	zvol, err := p.owns(vol)
  	if err != nil {
  		return nil, err
  	}
  	snapshots, err := zvol.dataset.Snapshots()
  	if err != nil {
  		return nil, err
  	}
  	res := make([]json.RawMessage, len(snapshots))
  	for i, snapshot := range snapshots {
  		have := &zfsHaves{SnapID: strings.SplitN(snapshot.Name, "@", 2)[1]}
  		serial, err := json.Marshal(have)
  		if err != nil {
  			return nil, err
  		}
  		res[i] = serial
  	}
  	return res, nil
  }
docs: /*
  	Returns the set of snapshot UIDs available in this volume's backing dataset.
  */