static void cephThrowFNF(JNIEnv *env, const char *msg)
{
- THROW(env, "java/io/FileNotFoundException", msg);
+ THROW(env, "java/io/FileNotFoundException", msg);
}
static void cephThrowFileExists(JNIEnv *env, const char *msg)
{
- THROW(env, CEPH_FILEEXISTS_CP, msg);
+ THROW(env, CEPH_FILEEXISTS_CP, msg);
}
static void cephThrowNotDir(JNIEnv *env, const char *msg)
{
- THROW(env, CEPH_NOTDIR_CP, msg);
+ THROW(env, CEPH_NOTDIR_CP, msg);
}
static void handle_error(JNIEnv *env, int rc)
{
- switch (rc) {
- case -ENOENT:
- cephThrowFNF(env, "");
- return;
- case -EEXIST:
- cephThrowFileExists(env, "");
- return;
- case -ENOTDIR:
- cephThrowNotDir(env, "");
- return;
- default:
- break;
- }
+ switch (rc) {
+ case -ENOENT:
+ cephThrowFNF(env, "");
+ return;
+ case -EEXIST:
+ cephThrowFileExists(env, "");
+ return;
+ case -ENOTDIR:
+ cephThrowNotDir(env, "");
+ return;
+ default:
+ break;
+ }
- THROW(env, "java/io/IOException", strerror(-rc));
+ THROW(env, "java/io/IOException", strerror(-rc));
}
#define CHECK_ARG_NULL(v, m, r) do { \
JNIEXPORT void JNICALL Java_com_ceph_fs_CephMount_native_1initialize
(JNIEnv *env, jclass clz)
{
- setup_field_ids(env, clz);
+ setup_field_ids(env, clz);
}
/*
if (c_id)
env->ReleaseStringUTFChars(j_id, c_id);
- if (ret) {
- THROW(env, "java/lang/RuntimeException", "failed to create Ceph mount object");
- return ret;
- }
+ if (ret) {
+ THROW(env, "java/lang/RuntimeException", "failed to create Ceph mount object");
+ return ret;
+ }
- env->SetLongField(j_cephmount, cephmount_instance_ptr_fid, (long)cmount);
+ env->SetLongField(j_cephmount, cephmount_instance_ptr_fid, (long)cmount);
return ret;
}
if (c_root)
env->ReleaseStringUTFChars(j_root, c_root);
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
JNIEXPORT jint JNICALL Java_com_ceph_fs_CephMount_native_1ceph_1unmount
(JNIEnv *env, jclass clz, jlong j_mntp)
{
- struct ceph_mount_info *cmount = get_ceph_mount(j_mntp);
- CephContext *cct = ceph_get_mount_context(cmount);
- int ret;
+ struct ceph_mount_info *cmount = get_ceph_mount(j_mntp);
+ CephContext *cct = ceph_get_mount_context(cmount);
+ int ret;
- ldout(cct, 10) << "jni: ceph_unmount enter" << dendl;
+ ldout(cct, 10) << "jni: ceph_unmount enter" << dendl;
- CHECK_MOUNTED(cmount, -1);
+ CHECK_MOUNTED(cmount, -1);
- ret = ceph_unmount(cmount);
+ ret = ceph_unmount(cmount);
- ldout(cct, 10) << "jni: ceph_unmount exit ret " << ret << dendl;
+ ldout(cct, 10) << "jni: ceph_unmount exit ret " << ret << dendl;
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
- return ret;
+ return ret;
}
/*
JNIEXPORT jint JNICALL Java_com_ceph_fs_CephMount_native_1ceph_1release
(JNIEnv *env, jclass clz, jlong j_mntp)
{
- struct ceph_mount_info *cmount = get_ceph_mount(j_mntp);
- CephContext *cct = ceph_get_mount_context(cmount);
- int ret;
+ struct ceph_mount_info *cmount = get_ceph_mount(j_mntp);
+ CephContext *cct = ceph_get_mount_context(cmount);
+ int ret;
- ldout(cct, 10) << "jni: ceph_release called" << dendl;
+ ldout(cct, 10) << "jni: ceph_release called" << dendl;
- ret = ceph_release(cmount);
+ ret = ceph_release(cmount);
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
- return ret;
+ return ret;
}
/*
env->ReleaseStringUTFChars(j_opt, c_opt);
env->ReleaseStringUTFChars(j_val, c_val);
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
while (1) {
memset(buf, 0, sizeof(char)*buflen);
- ldout(cct, 10) << "jni: conf_get: opt " << c_opt << " len " << buflen << dendl;
+ ldout(cct, 10) << "jni: conf_get: opt " << c_opt << " len " << buflen << dendl;
ret = ceph_conf_get(cmount, c_opt, buf, buflen);
if (ret == -ENAMETOOLONG) {
buflen *= 2;
if (ret == 0)
value = env->NewStringUTF(buf);
else if (ret != -ENOENT)
- handle_error(env, ret);
+ handle_error(env, ret);
delete [] buf;
env->ReleaseStringUTFChars(j_path, c_path);
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
env->ReleaseStringUTFChars(j_path, c_path);
- if (ret) {
- handle_error(env, ret);
- return ret;
- }
+ if (ret) {
+ handle_error(env, ret);
+ return ret;
+ }
env->SetLongField(j_cephstatvfs, cephstatvfs_bsize_fid, st.f_bsize);
env->SetLongField(j_cephstatvfs, cephstatvfs_frsize_fid, st.f_frsize);
env->ReleaseStringUTFChars(j_path, c_path);
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
ret = ceph_opendir(cmount, c_path, &dirp);
if (ret) {
env->ReleaseStringUTFChars(j_path, c_path);
- handle_error(env, ret);
+ handle_error(env, ret);
return NULL;
}
delete [] buf;
if (ret < 0) {
- handle_error(env, ret);
+ handle_error(env, ret);
goto out;
- }
+ }
/* directory list */
dirlist = env->NewObjectArray(contents.size(), env->FindClass("java/lang/String"), NULL);
if (!dirlist)
goto out;
- /*
- * Fill directory listing array.
- *
- * FIXME: how should a partially filled array be cleaned-up properly?
- */
+ /*
+ * Fill directory listing array.
+ *
+ * FIXME: how should a partially filled array be cleaned-up properly?
+ */
for (i = 0, it = contents.begin(); it != contents.end(); it++) {
name = env->NewStringUTF(it->c_str());
if (!name)
goto out;
env->SetObjectArrayElement(dirlist, i++, name);
- if (env->ExceptionOccurred())
- goto out;
+ if (env->ExceptionOccurred())
+ goto out;
env->DeleteLocalRef(name);
}
env->ReleaseStringUTFChars(j_oldpath, c_oldpath);
env->ReleaseStringUTFChars(j_newpath, c_newpath);
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
env->ReleaseStringUTFChars(j_path, c_path);
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
env->ReleaseStringUTFChars(j_from, c_from);
env->ReleaseStringUTFChars(j_to, c_to);
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
env->ReleaseStringUTFChars(j_path, c_path);
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
env->ReleaseStringUTFChars(j_path, c_path);
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
env->ReleaseStringUTFChars(j_path, c_path);
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
struct ceph_mount_info *cmount = get_ceph_mount(j_mntp);
CephContext *cct = ceph_get_mount_context(cmount);
const char *c_path;
- char *linkname;
- struct stat st;
- jstring j_linkname;
+ char *linkname;
+ struct stat st;
+ jstring j_linkname;
int ret;
CHECK_ARG_NULL(j_path, "@path is null", NULL);
return NULL;
}
- for (;;) {
- ldout(cct, 10) << "jni: readlink: lstatx " << c_path << dendl;
- ret = ceph_lstat(cmount, c_path, &st);
- ldout(cct, 10) << "jni: readlink: lstat exit ret " << ret << dendl;
- if (ret) {
- env->ReleaseStringUTFChars(j_path, c_path);
- handle_error(env, ret);
- return NULL;
- }
+ for (;;) {
+ ldout(cct, 10) << "jni: readlink: lstatx " << c_path << dendl;
+ ret = ceph_lstat(cmount, c_path, &st);
+ ldout(cct, 10) << "jni: readlink: lstat exit ret " << ret << dendl;
+ if (ret) {
+ env->ReleaseStringUTFChars(j_path, c_path);
+ handle_error(env, ret);
+ return NULL;
+ }
- linkname = new (std::nothrow) char[st.st_size + 1];
- if (!linkname) {
- env->ReleaseStringUTFChars(j_path, c_path);
- cephThrowOutOfMemory(env, "head allocation failed");
- return NULL;
- }
+ linkname = new (std::nothrow) char[st.st_size + 1];
+ if (!linkname) {
+ env->ReleaseStringUTFChars(j_path, c_path);
+ cephThrowOutOfMemory(env, "head allocation failed");
+ return NULL;
+ }
- ldout(cct, 10) << "jni: readlink: size " << st.st_size << " path " << c_path << dendl;
+ ldout(cct, 10) << "jni: readlink: size " << st.st_size << " path " << c_path << dendl;
- ret = ceph_readlink(cmount, c_path, linkname, st.st_size + 1);
+ ret = ceph_readlink(cmount, c_path, linkname, st.st_size + 1);
- ldout(cct, 10) << "jni: readlink: exit ret " << ret << dendl;
+ ldout(cct, 10) << "jni: readlink: exit ret " << ret << dendl;
- if (ret < 0) {
- delete [] linkname;
- env->ReleaseStringUTFChars(j_path, c_path);
- handle_error(env, ret);
- return NULL;
- }
+ if (ret < 0) {
+ delete [] linkname;
+ env->ReleaseStringUTFChars(j_path, c_path);
+ handle_error(env, ret);
+ return NULL;
+ }
- /* re-stat and try again */
- if (ret > st.st_size) {
- delete [] linkname;
- continue;
- }
+ /* re-stat and try again */
+ if (ret > st.st_size) {
+ delete [] linkname;
+ continue;
+ }
- linkname[ret] = '\0';
- break;
- }
+ linkname[ret] = '\0';
+ break;
+ }
env->ReleaseStringUTFChars(j_path, c_path);
- j_linkname = env->NewStringUTF(linkname);
- delete [] linkname;
+ j_linkname = env->NewStringUTF(linkname);
+ delete [] linkname;
return j_linkname;
}
env->ReleaseStringUTFChars(j_oldpath, c_oldpath);
env->ReleaseStringUTFChars(j_newpath, c_newpath);
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
env->ReleaseStringUTFChars(j_path, c_path);
- if (ret) {
- handle_error(env, ret);
- return ret;
- }
+ if (ret) {
+ handle_error(env, ret);
+ return ret;
+ }
fill_cephstat(env, j_cephstat, &st);
env->ReleaseStringUTFChars(j_path, c_path);
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
env->ReleaseStringUTFChars(j_path, c_path);
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
JNIEXPORT jint JNICALL Java_com_ceph_fs_CephMount_native_1ceph_1fchmod
(JNIEnv *env, jclass clz, jlong j_mntp, jint j_fd, jint j_mode)
{
- struct ceph_mount_info *cmount = get_ceph_mount(j_mntp);
- CephContext *cct = ceph_get_mount_context(cmount);
- int ret;
+ struct ceph_mount_info *cmount = get_ceph_mount(j_mntp);
+ CephContext *cct = ceph_get_mount_context(cmount);
+ int ret;
- CHECK_MOUNTED(cmount, -1);
+ CHECK_MOUNTED(cmount, -1);
- ldout(cct, 10) << "jni: fchmod: fd " << (int)j_fd << " mode " << (int)j_mode << dendl;
+ ldout(cct, 10) << "jni: fchmod: fd " << (int)j_fd << " mode " << (int)j_mode << dendl;
- ret = ceph_fchmod(cmount, (int)j_fd, (int)j_mode);
+ ret = ceph_fchmod(cmount, (int)j_fd, (int)j_mode);
- ldout(cct, 10) << "jni: fchmod: exit ret " << ret << dendl;
+ ldout(cct, 10) << "jni: fchmod: exit ret " << ret << dendl;
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
- return ret;
+ return ret;
}
/*
env->ReleaseStringUTFChars(j_path, c_path);
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
env->ReleaseStringUTFChars(j_path, c_path);
- if (ret < 0)
- handle_error(env, ret);
+ if (ret < 0)
+ handle_error(env, ret);
return ret;
}
if (j_data_pool)
env->ReleaseStringUTFChars(j_data_pool, c_data_pool);
- if (ret < 0)
- handle_error(env, ret);
+ if (ret < 0)
+ handle_error(env, ret);
return ret;
}
ldout(cct, 10) << "jni: close: ret " << ret << dendl;
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
ldout(cct, 10) << "jni: lseek: exit ret " << ret << dendl;
- if (ret < 0)
- handle_error(env, ret);
+ if (ret < 0)
+ handle_error(env, ret);
return ret;
}
ldout(cct, 10) << "jni: read: exit ret " << ret << dendl;
- if (ret < 0)
- handle_error(env, (int)ret);
- else
- env->ReleaseByteArrayElements(j_buf, c_buf, 0);
+ if (ret < 0)
+ handle_error(env, (int)ret);
+ else
+ env->ReleaseByteArrayElements(j_buf, c_buf, 0);
return (jlong)ret;
}
ldout(cct, 10) << "jni: write: exit ret " << ret << dendl;
- if (ret < 0)
- handle_error(env, (int)ret);
- else
- env->ReleaseByteArrayElements(j_buf, c_buf, JNI_ABORT);
+ if (ret < 0)
+ handle_error(env, (int)ret);
+ else
+ env->ReleaseByteArrayElements(j_buf, c_buf, JNI_ABORT);
return ret;
}
ldout(cct, 10) << "jni: ftruncate: exit ret " << ret << dendl;
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
ldout(cct, 10) << "jni: fsync: exit ret " << ret << dendl;
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
ldout(cct, 10) << "jni: fstat exit ret " << ret << dendl;
if (ret) {
- handle_error(env, ret);
+ handle_error(env, ret);
return ret;
- }
+ }
env->SetIntField(j_cephstat, cephstat_mode_fid, st.st_mode);
env->SetIntField(j_cephstat, cephstat_uid_fid, st.st_uid);
ldout(cct, 10) << "jni: sync_fs: exit ret " << ret << dendl;
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
if (j_buf)
env->ReleaseByteArrayElements(j_buf, c_buf, 0);
- if (ret < 0)
- handle_error(env, (int)ret);
+ if (ret < 0)
+ handle_error(env, (int)ret);
return (jlong)ret;
}
return -1;
}
- /* just lookup the size if buf is null */
+ /* just lookup the size if buf is null */
if (!j_buf) {
buf_size = 0;
goto do_lgetxattr;
if (j_buf)
env->ReleaseByteArrayElements(j_buf, c_buf, 0);
- if (ret < 0)
- handle_error(env, (int)ret);
+ if (ret < 0)
+ handle_error(env, (int)ret);
return (jlong)ret;
}
if (ret < 0) {
delete [] buf;
- handle_error(env, ret);
+ handle_error(env, ret);
goto out;
}
if (!name)
goto out;
env->SetObjectArrayElement(xattrlist, i++, name);
- if (env->ExceptionOccurred())
- goto out;
+ if (env->ExceptionOccurred())
+ goto out;
env->DeleteLocalRef(name);
}
if (ret < 0) {
delete [] buf;
- handle_error(env, ret);
+ handle_error(env, ret);
goto out;
}
if (!name)
goto out;
env->SetObjectArrayElement(xattrlist, i++, name);
- if (env->ExceptionOccurred())
- goto out;
+ if (env->ExceptionOccurred())
+ goto out;
env->DeleteLocalRef(name);
}
env->ReleaseStringUTFChars(j_path, c_path);
env->ReleaseStringUTFChars(j_name, c_name);
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
env->ReleaseStringUTFChars(j_path, c_path);
env->ReleaseStringUTFChars(j_name, c_name);
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
flags = 0;
break;
default:
- env->ReleaseStringUTFChars(j_path, c_path);
- env->ReleaseStringUTFChars(j_name, c_name);
- env->ReleaseByteArrayElements(j_buf, c_buf, JNI_ABORT);
- cephThrowIllegalArg(env, "setxattr flag");
- return -1;
+ env->ReleaseStringUTFChars(j_path, c_path);
+ env->ReleaseStringUTFChars(j_name, c_name);
+ env->ReleaseByteArrayElements(j_buf, c_buf, JNI_ABORT);
+ cephThrowIllegalArg(env, "setxattr flag");
+ return -1;
}
ldout(cct, 10) << "jni: setxattr: path " << c_path << " name " << c_name
env->ReleaseStringUTFChars(j_name, c_name);
env->ReleaseByteArrayElements(j_buf, c_buf, JNI_ABORT);
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
flags = 0;
break;
default:
- env->ReleaseStringUTFChars(j_path, c_path);
- env->ReleaseStringUTFChars(j_name, c_name);
- env->ReleaseByteArrayElements(j_buf, c_buf, JNI_ABORT);
- cephThrowIllegalArg(env, "lsetxattr flag");
- return -1;
+ env->ReleaseStringUTFChars(j_path, c_path);
+ env->ReleaseStringUTFChars(j_name, c_name);
+ env->ReleaseByteArrayElements(j_buf, c_buf, JNI_ABORT);
+ cephThrowIllegalArg(env, "lsetxattr flag");
+ return -1;
}
ldout(cct, 10) << "jni: lsetxattr: path " << c_path << " name " << c_name
env->ReleaseStringUTFChars(j_name, c_name);
env->ReleaseByteArrayElements(j_buf, c_buf, JNI_ABORT);
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
ldout(cct, 10) << "jni: get_file_stripe_unit: exit ret " << ret << dendl;
- if (ret < 0)
- handle_error(env, ret);
+ if (ret < 0)
+ handle_error(env, ret);
return ret;
}
ldout(cct, 10) << "jni: get_file_replication: exit ret " << ret << dendl;
- if (ret < 0)
- handle_error(env, ret);
+ if (ret < 0)
+ handle_error(env, ret);
return ret;
}
JNIEXPORT jstring JNICALL Java_com_ceph_fs_CephMount_native_1ceph_1get_1file_1pool_1name
(JNIEnv *env, jclass clz, jlong j_mntp, jint j_fd)
{
- struct ceph_mount_info *cmount = get_ceph_mount(j_mntp);
- CephContext *cct = ceph_get_mount_context(cmount);
- jstring pool = NULL;
- int ret, buflen = 0;
- char *buf = NULL;
-
- CHECK_MOUNTED(cmount, NULL);
-
- ldout(cct, 10) << "jni: get_file_pool_name: fd " << (int)j_fd << dendl;
-
- for (;;) {
- /* get pool name length (len==0) */
- ret = ceph_get_file_pool_name(cmount, (int)j_fd, NULL, 0);
- if (ret < 0)
- break;
-
- /* allocate buffer */
- if (buf)
- delete [] buf;
- buflen = ret;
- buf = new (std::nothrow) char[buflen+1]; /* +1 for '\0' */
- if (!buf) {
- cephThrowOutOfMemory(env, "head allocation failed");
- goto out;
- }
- memset(buf, 0, (buflen+1)*sizeof(*buf));
-
- /* handle zero-length pool name!? */
- if (buflen == 0)
- break;
-
- /* fill buffer */
- ret = ceph_get_file_pool_name(cmount, (int)j_fd, buf, buflen);
- if (ret == -ERANGE) /* size changed! */
- continue;
- else
- break;
- }
-
- ldout(cct, 10) << "jni: get_file_pool_name: ret " << ret << dendl;
-
- if (ret < 0)
- handle_error(env, ret);
- else
- pool = env->NewStringUTF(buf);
+ struct ceph_mount_info *cmount = get_ceph_mount(j_mntp);
+ CephContext *cct = ceph_get_mount_context(cmount);
+ jstring pool = NULL;
+ int ret, buflen = 0;
+ char *buf = NULL;
+
+ CHECK_MOUNTED(cmount, NULL);
+
+ ldout(cct, 10) << "jni: get_file_pool_name: fd " << (int)j_fd << dendl;
+
+ for (;;) {
+ /* get pool name length (len==0) */
+ ret = ceph_get_file_pool_name(cmount, (int)j_fd, NULL, 0);
+ if (ret < 0)
+ break;
+
+ /* allocate buffer */
+ if (buf)
+ delete [] buf;
+ buflen = ret;
+ buf = new (std::nothrow) char[buflen+1]; /* +1 for '\0' */
+ if (!buf) {
+ cephThrowOutOfMemory(env, "head allocation failed");
+ goto out;
+ }
+ memset(buf, 0, (buflen+1)*sizeof(*buf));
+
+ /* handle zero-length pool name!? */
+ if (buflen == 0)
+ break;
+
+ /* fill buffer */
+ ret = ceph_get_file_pool_name(cmount, (int)j_fd, buf, buflen);
+ if (ret == -ERANGE) /* size changed! */
+ continue;
+ else
+ break;
+ }
+
+ ldout(cct, 10) << "jni: get_file_pool_name: ret " << ret << dendl;
+
+ if (ret < 0)
+ handle_error(env, ret);
+ else
+ pool = env->NewStringUTF(buf);
out:
- if (buf)
- delete [] buf;
+ if (buf)
+ delete [] buf;
- return pool;
+ return pool;
}
/*
ldout(cct, 10) << "jni: localize_reads: exit ret " << ret << dendl;
- if (ret)
- handle_error(env, ret);
+ if (ret)
+ handle_error(env, ret);
return ret;
}
ldout(cct, 10) << "jni: get_stripe_unit_granularity: exit ret " << ret << dendl;
- if (ret < 0)
- handle_error(env, ret);
+ if (ret < 0)
+ handle_error(env, ret);
return ret;
}
JNIEXPORT jint JNICALL Java_com_ceph_fs_CephMount_native_1ceph_1get_1pool_1id
(JNIEnv *env, jclass clz, jlong j_mntp, jstring jname)
{
- struct ceph_mount_info *cmount = get_ceph_mount(j_mntp);
- CephContext *cct = ceph_get_mount_context(cmount);
- const char *c_name;
- int ret;
+ struct ceph_mount_info *cmount = get_ceph_mount(j_mntp);
+ CephContext *cct = ceph_get_mount_context(cmount);
+ const char *c_name;
+ int ret;
- CHECK_MOUNTED(cmount, -1);
- CHECK_ARG_NULL(jname, "@name is null", -1);
+ CHECK_MOUNTED(cmount, -1);
+ CHECK_ARG_NULL(jname, "@name is null", -1);
- c_name = env->GetStringUTFChars(jname, NULL);
- if (!c_name) {
- cephThrowInternal(env, "failed to pin memory");
- return -1;
- }
+ c_name = env->GetStringUTFChars(jname, NULL);
+ if (!c_name) {
+ cephThrowInternal(env, "failed to pin memory");
+ return -1;
+ }
- ldout(cct, 10) << "jni: get_pool_id: name " << c_name << dendl;
+ ldout(cct, 10) << "jni: get_pool_id: name " << c_name << dendl;
- ret = ceph_get_pool_id(cmount, c_name);
- if (ret < 0)
- handle_error(env, ret);
+ ret = ceph_get_pool_id(cmount, c_name);
+ if (ret < 0)
+ handle_error(env, ret);
- ldout(cct, 10) << "jni: get_pool_id: ret " << ret << dendl;
+ ldout(cct, 10) << "jni: get_pool_id: ret " << ret << dendl;
- env->ReleaseStringUTFChars(jname, c_name);
+ env->ReleaseStringUTFChars(jname, c_name);
- return ret;
+ return ret;
}
/*
JNIEXPORT jint JNICALL Java_com_ceph_fs_CephMount_native_1ceph_1get_1pool_1replication
(JNIEnv *env, jclass clz, jlong j_mntp, jint jpoolid)
{
- struct ceph_mount_info *cmount = get_ceph_mount(j_mntp);
- CephContext *cct = ceph_get_mount_context(cmount);
- int ret;
+ struct ceph_mount_info *cmount = get_ceph_mount(j_mntp);
+ CephContext *cct = ceph_get_mount_context(cmount);
+ int ret;
- CHECK_MOUNTED(cmount, -1);
+ CHECK_MOUNTED(cmount, -1);
- ldout(cct, 10) << "jni: get_pool_replication: poolid " << jpoolid << dendl;
+ ldout(cct, 10) << "jni: get_pool_replication: poolid " << jpoolid << dendl;
- ret = ceph_get_pool_replication(cmount, jpoolid);
- if (ret < 0)
- handle_error(env, ret);
+ ret = ceph_get_pool_replication(cmount, jpoolid);
+ if (ret < 0)
+ handle_error(env, ret);
- ldout(cct, 10) << "jni: get_pool_replication: ret " << ret << dendl;
+ ldout(cct, 10) << "jni: get_pool_replication: ret " << ret << dendl;
- return ret;
+ return ret;
}