]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
java: fill in stat structure correctly 2787/head
authorNoah Watkins <noahwatkins@gmail.com>
Thu, 23 Oct 2014 20:22:52 +0000 (13:22 -0700)
committerNoah Watkins <noahwatkins@gmail.com>
Thu, 23 Oct 2014 20:58:23 +0000 (13:58 -0700)
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 <noahwatkins@gmail.com>
src/java/native/libcephfs_jni.cc

index a96b20d95598a0bca07b77aa0a3c067ae0a49131..99ab3f48c10e961529240ec22466f5c4f626425b 100644 (file)
@@ -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;
 }