From 50605be79988c2512d0696f16225db85ccbb7362 Mon Sep 17 00:00:00 2001 From: Jeff Layton Date: Mon, 29 Aug 2016 07:16:40 -0400 Subject: [PATCH] libcephfs: return the change_attr in the statx.stx_version field Signed-off-by: Jeff Layton --- src/client/Client.cc | 6 ++++-- src/include/cephfs/ceph_statx.h | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/client/Client.cc b/src/client/Client.cc index 95abf60db92..ddf38f9beff 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -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); } } diff --git a/src/include/cephfs/ceph_statx.h b/src/include/cephfs/ceph_statx.h index 48ce0f9154a..94870702d10 100644 --- a/src/include/cephfs/ceph_statx.h +++ b/src/include/cephfs/ceph_statx.h @@ -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 */ -- 2.39.5