mirror of
https://github.com/ceph/go-ceph
synced 2024-12-26 16:12:45 +00:00
1755e31f71
Add SelectFileystem implementing ceph_select_filesystem which can be used to select a cephfs by name, prior to calling mount, when the ceph cluster hosts more than one cephfs file system. Fixes: #262 Fixes: #818 Original-Version-By: "Arvid E. Picciani" <arvid@kraud.cloud> Original-PR-URL: https://github.com/ceph/go-ceph/pull/819 Signed-off-by: John Mulligan <jmulligan@redhat.com>
34 lines
905 B
Go
34 lines
905 B
Go
//go:build ceph_preview
|
|
// +build ceph_preview
|
|
|
|
package cephfs
|
|
|
|
/*
|
|
#cgo LDFLAGS: -lcephfs
|
|
#cgo CPPFLAGS: -D_FILE_OFFSET_BITS=64
|
|
#define _GNU_SOURCE
|
|
#include <stdlib.h>
|
|
#include <cephfs/libcephfs.h>
|
|
*/
|
|
import "C"
|
|
|
|
import (
|
|
"unsafe"
|
|
)
|
|
|
|
// SelectFilesystem selects a file system to be mounted. If the ceph cluster
|
|
// supports more than one cephfs this optional function selects which one to
|
|
// use. Can only be called prior to calling Mount. The name of the file system
|
|
// is not validated by this call - if the supplied file system name is not
|
|
// valid then only the subsequent mount call will fail.
|
|
//
|
|
// Implements:
|
|
// int ceph_select_filesystem(struct ceph_mount_info *cmount, const char *fs_name);
|
|
func (mount *MountInfo) SelectFilesystem(name string) error {
|
|
cName := C.CString(name)
|
|
defer C.free(unsafe.Pointer(cName))
|
|
|
|
ret := C.ceph_select_filesystem(mount.mount, cName)
|
|
return getError(ret)
|
|
}
|