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:
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)
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);
}
}
#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 */