mirror of
https://github.com/ceph/ceph-csi.git
synced 2025-06-13 10:33:35 +00:00
rebase: update go-ceph to v0.7.0
updating go-ceph to latest 0.7.0 release. Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
This commit is contained in:
committed by
mergify[bot]
parent
97acd47ae9
commit
eeec1213cb
104
vendor/github.com/ceph/go-ceph/rbd/rbd.go
generated
vendored
104
vendor/github.com/ceph/go-ceph/rbd/rbd.go
generated
vendored
@ -808,6 +808,36 @@ func (image *Image) WriteAt(data []byte, off int64) (n int, err error) {
|
||||
return ret, err
|
||||
}
|
||||
|
||||
// WriteSame repeats writing data from starting point ofs until n bytes have
|
||||
// been written.
|
||||
//
|
||||
// Implements:
|
||||
// ssize_t rbd_writesame(rbd_image_t image, uint64_t ofs, size_t len,
|
||||
// const char *buf, size_t data_len, int op_flags);
|
||||
func (image *Image) WriteSame(ofs, n uint64, data []byte, flags rados.OpFlags) (int64, error) {
|
||||
var err error
|
||||
|
||||
if err = image.validate(imageIsOpen); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
if len(data) == 0 {
|
||||
return 0, nil
|
||||
}
|
||||
|
||||
ret := C.rbd_writesame(image.image,
|
||||
C.uint64_t(ofs),
|
||||
C.uint64_t(n),
|
||||
(*C.char)(unsafe.Pointer(&data[0])),
|
||||
C.size_t(len(data)),
|
||||
C.int(flags))
|
||||
if ret < 0 {
|
||||
err = getError(C.int(ret))
|
||||
}
|
||||
|
||||
return int64(ret), err
|
||||
}
|
||||
|
||||
// Flush all cached writes to storage.
|
||||
//
|
||||
// Implements:
|
||||
@ -853,80 +883,6 @@ func (image *Image) GetSnapshotNames() (snaps []SnapInfo, err error) {
|
||||
return snaps[:len(snaps)-1], nil
|
||||
}
|
||||
|
||||
// GetMetadata returns the metadata string associated with the given key.
|
||||
//
|
||||
// Implements:
|
||||
// int rbd_metadata_get(rbd_image_t image, const char *key, char *value, size_t *vallen)
|
||||
func (image *Image) GetMetadata(key string) (string, error) {
|
||||
if err := image.validate(imageIsOpen); err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
c_key := C.CString(key)
|
||||
defer C.free(unsafe.Pointer(c_key))
|
||||
|
||||
var (
|
||||
buf []byte
|
||||
err error
|
||||
)
|
||||
retry.WithSizes(4096, 262144, func(size int) retry.Hint {
|
||||
csize := C.size_t(size)
|
||||
buf = make([]byte, csize)
|
||||
// rbd_metadata_get is a bit quirky and *does not* update the size
|
||||
// value if the size passed in >= the needed size.
|
||||
ret := C.rbd_metadata_get(
|
||||
image.image, c_key, (*C.char)(unsafe.Pointer(&buf[0])), &csize)
|
||||
err = getError(ret)
|
||||
return retry.Size(int(csize)).If(err == errRange)
|
||||
})
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return C.GoString((*C.char)(unsafe.Pointer(&buf[0]))), nil
|
||||
}
|
||||
|
||||
// SetMetadata updates the metadata string associated with the given key.
|
||||
//
|
||||
// Implements:
|
||||
// int rbd_metadata_set(rbd_image_t image, const char *key, const char *value)
|
||||
func (image *Image) SetMetadata(key string, value string) error {
|
||||
if err := image.validate(imageIsOpen); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
c_key := C.CString(key)
|
||||
c_value := C.CString(value)
|
||||
defer C.free(unsafe.Pointer(c_key))
|
||||
defer C.free(unsafe.Pointer(c_value))
|
||||
|
||||
ret := C.rbd_metadata_set(image.image, c_key, c_value)
|
||||
if ret < 0 {
|
||||
return rbdError(ret)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// RemoveMetadata clears the metadata associated with the given key.
|
||||
//
|
||||
// Implements:
|
||||
// int rbd_metadata_remove(rbd_image_t image, const char *key)
|
||||
func (image *Image) RemoveMetadata(key string) error {
|
||||
if err := image.validate(imageIsOpen); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
c_key := C.CString(key)
|
||||
defer C.free(unsafe.Pointer(c_key))
|
||||
|
||||
ret := C.rbd_metadata_remove(image.image, c_key)
|
||||
if ret < 0 {
|
||||
return rbdError(ret)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetId returns the internal image ID string.
|
||||
//
|
||||
// Implements:
|
||||
|
Reference in New Issue
Block a user