From: Noah Watkins Date: Thu, 23 Oct 2014 20:22:52 +0000 (-0700) Subject: java: fill in stat structure correctly X-Git-Tag: v0.87~9^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=44a8d59b10fcde4cde63487435acaf494025bc01;p=ceph.git java: fill in stat structure correctly Added stat filling helper function but only stat and lstat were updated. This patch makes fstat use it. Crucially the fstat wasn't updating the mode flags. Signed-off-by: Noah Watkins --- diff --git a/src/java/native/libcephfs_jni.cc b/src/java/native/libcephfs_jni.cc index a96b20d95598a..99ab3f48c10e9 100644 --- a/src/java/native/libcephfs_jni.cc +++ b/src/java/native/libcephfs_jni.cc @@ -1775,7 +1775,6 @@ JNIEXPORT jint JNICALL Java_com_ceph_fs_CephMount_native_1ceph_1fstat { struct ceph_mount_info *cmount = get_ceph_mount(j_mntp); CephContext *cct = ceph_get_mount_context(cmount); - long long time; struct stat st; int ret; @@ -1793,22 +1792,7 @@ JNIEXPORT jint JNICALL Java_com_ceph_fs_CephMount_native_1ceph_1fstat return ret; } - env->SetIntField(j_cephstat, cephstat_mode_fid, st.st_mode); - env->SetIntField(j_cephstat, cephstat_uid_fid, st.st_uid); - env->SetIntField(j_cephstat, cephstat_gid_fid, st.st_gid); - env->SetLongField(j_cephstat, cephstat_size_fid, st.st_size); - env->SetLongField(j_cephstat, cephstat_blksize_fid, st.st_blksize); - env->SetLongField(j_cephstat, cephstat_blocks_fid, st.st_blocks); - - time = st.st_mtim.tv_sec; - time *= 1000; - time += st.st_mtim.tv_nsec / 1000; - env->SetLongField(j_cephstat, cephstat_m_time_fid, time); - - time = st.st_atim.tv_sec; - time *= 1000; - time += st.st_atim.tv_nsec / 1000; - env->SetLongField(j_cephstat, cephstat_a_time_fid, time); + fill_cephstat(env, j_cephstat, &st); return ret; }