]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
libcephfs: return the change_attr in the statx.stx_version field
authorJeff Layton <jlayton@redhat.com>
Mon, 29 Aug 2016 11:16:40 +0000 (07:16 -0400)
committerJeff Layton <jlayton@redhat.com>
Mon, 29 Aug 2016 14:33:46 +0000 (10:33 -0400)
Signed-off-by: Jeff Layton <jlayton@redhat.com>
src/client/Client.cc
src/include/cephfs/ceph_statx.h

index 95abf60db92031faddf733158620e8794d5e3a06..ddf38f9beff1a89cb8d690ed8c5005041d138b8c 100644 (file)
@@ -6677,7 +6677,7 @@ unsigned Client::statx_to_mask(unsigned int flags, unsigned int want)
     mask |= CEPH_CAP_AUTH_SHARED;
   if (want & CEPH_STATX_NLINK)
     mask |= CEPH_CAP_LINK_SHARED;
-  if (want & (CEPH_STATX_ATIME|CEPH_STATX_MTIME|CEPH_STATX_CTIME|CEPH_STATX_SIZE|CEPH_STATX_BLOCKS))
+  if (want & (CEPH_STATX_ATIME|CEPH_STATX_MTIME|CEPH_STATX_CTIME|CEPH_STATX_SIZE|CEPH_STATX_BLOCKS|CEPH_STATX_VERSION))
     mask |= CEPH_CAP_FILE_SHARED;
 
 out:
@@ -6836,6 +6836,7 @@ void Client::fill_statx(Inode *in, unsigned int mask, struct ceph_statx *stx)
     stx->stx_atime_ns = in->atime.nsec();
     stx->stx_mtime = in->mtime.sec();
     stx->stx_mtime_ns = in->mtime.nsec();
+    stx->stx_version = in->change_attr;
 
     if (in->is_dir()) {
       if (cct->_conf->client_dirsize_rbytes)
@@ -6847,7 +6848,8 @@ void Client::fill_statx(Inode *in, unsigned int mask, struct ceph_statx *stx)
       stx->stx_size = in->size;
       stx->stx_blocks = (in->size + 511) >> 9;
     }
-    stx->stx_mask |= (CEPH_STATX_ATIME|CEPH_STATX_MTIME|CEPH_STATX_CTIME|CEPH_STATX_SIZE|CEPH_STATX_BLOCKS);
+    stx->stx_mask |= (CEPH_STATX_ATIME|CEPH_STATX_MTIME|CEPH_STATX_CTIME|
+                     CEPH_STATX_SIZE|CEPH_STATX_BLOCKS|CEPH_STATX_VERSION);
   }
 }
 
index 48ce0f9154a74b77089316eca037d0edfaa6d614..94870702d10dc44657fde3465468c3daf76dcc9c 100644 (file)
@@ -69,6 +69,7 @@ struct ceph_statx {
 #define CEPH_STATX_BLOCKS      0x00000400U     /* Want/got stx_blocks */
 #define CEPH_STATX_BASIC_STATS 0x000007ffU     /* The stuff in the normal stat struct */
 #define CEPH_STATX_BTIME       0x00000800U     /* Want/got stx_btime */
+#define CEPH_STATX_VERSION     0x00001000U     /* Want/got stx_version */
 #define CEPH_STATX_GEN         0x00002000U     /* Want/got stx_gen */
 #define CEPH_STATX_ALL_STATS   0x00003fffU     /* All supported stats */