From: Jeff Layton Date: Thu, 16 Apr 2020 16:01:05 +0000 (-0400) Subject: client: rename ceph_statx.h to ceph_ll_client.h X-Git-Tag: v14.2.10~7^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=11c2afab10977d498cd87f6eadb73622e5193759;p=ceph.git client: rename ceph_statx.h to ceph_ll_client.h ...so we can use it to include other definitions and types that need to be shared with in-tree code that doesn't want to include libcephfs.h. Signed-off-by: Jeff Layton (cherry picked from commit 4436f27a0476e96d10ed3367d738e1679d8b0a38) Conflicts: src/client/Client.h - nautilus version does not have the line #include "include/common_fwd.h" which is not relevant to this backport --- diff --git a/alpine/APKBUILD.in b/alpine/APKBUILD.in index 96037883f55..1fcd986c402 100644 --- a/alpine/APKBUILD.in +++ b/alpine/APKBUILD.in @@ -397,7 +397,7 @@ libcephfs_dev() { pkgdesc="Ceph distributed file system client library headers" depends="libcephfs librados-devel" - _pkg $_includedir/cephfs ceph_statx.h libcephfs.h + _pkg $_includedir/cephfs ceph_ll_client.h libcephfs.h _pkg $_libdir libcephfs.so } diff --git a/ceph.spec.in b/ceph.spec.in index ce4572c0152..c3904d9b9d3 100644 --- a/ceph.spec.in +++ b/ceph.spec.in @@ -2092,7 +2092,7 @@ fi %files -n libcephfs-devel %dir %{_includedir}/cephfs %{_includedir}/cephfs/libcephfs.h -%{_includedir}/cephfs/ceph_statx.h +%{_includedir}/cephfs/ceph_ll_client.h %{_libdir}/libcephfs.so %if 0%{with python2} diff --git a/debian/libcephfs-dev.install b/debian/libcephfs-dev.install index e2cf6e9f375..fbc1e4b95ff 100644 --- a/debian/libcephfs-dev.install +++ b/debian/libcephfs-dev.install @@ -1,3 +1,3 @@ -usr/include/cephfs/ceph_statx.h +usr/include/cephfs/ceph_ll_client.h usr/include/cephfs/libcephfs.h usr/lib/libcephfs.so diff --git a/src/client/Client.cc b/src/client/Client.cc index eeb55a71ed4..56f1f496635 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -97,7 +97,7 @@ #include "include/ceph_assert.h" #include "include/stat.h" -#include "include/cephfs/ceph_statx.h" +#include "include/cephfs/ceph_ll_client.h" #if HAVE_GETGROUPLIST #include diff --git a/src/client/Client.h b/src/client/Client.h index aec66d31bb7..a5d21132b73 100644 --- a/src/client/Client.h +++ b/src/client/Client.h @@ -22,7 +22,7 @@ #include "common/Timer.h" #include "common/cmdparse.h" #include "common/compiler_extensions.h" -#include "include/cephfs/ceph_statx.h" +#include "include/cephfs/ceph_ll_client.h" #include "include/filepath.h" #include "include/interval_set.h" #include "include/lru.h" diff --git a/src/client/SyntheticClient.cc b/src/client/SyntheticClient.cc index f511168386f..3e8b740deb9 100644 --- a/src/client/SyntheticClient.cc +++ b/src/client/SyntheticClient.cc @@ -36,7 +36,7 @@ #include "common/errno.h" #include "include/ceph_assert.h" -#include "include/cephfs/ceph_statx.h" +#include "include/cephfs/ceph_ll_client.h" #define dout_context g_ceph_context #define dout_subsys ceph_subsys_client diff --git a/src/client/fuse_ll.cc b/src/client/fuse_ll.cc index 04ea168ca20..20158e62668 100644 --- a/src/client/fuse_ll.cc +++ b/src/client/fuse_ll.cc @@ -33,7 +33,7 @@ #include "ioctl.h" #include "common/config.h" #include "include/ceph_assert.h" -#include "include/cephfs/ceph_statx.h" +#include "include/cephfs/ceph_ll_client.h" #include "fuse_ll.h" #include diff --git a/src/include/cephfs/ceph_ll_client.h b/src/include/cephfs/ceph_ll_client.h new file mode 100644 index 00000000000..f2645c0e0ff --- /dev/null +++ b/src/include/cephfs/ceph_ll_client.h @@ -0,0 +1,82 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab +/* + * scalable distributed file system + * + * Copyright (C) Jeff Layton + * + * This is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software + * Foundation. See file COPYING. + */ + +#ifndef CEPH_CEPH_LL_CLIENT_H +#define CEPH_CEPH_LL_CLIENT_H +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Heavily borrowed from David Howells' draft statx patchset. + * + * Since the xstat patches are still a work in progress, we borrow its data + * structures and #defines to implement ceph_getattrx. Once the xstat stuff + * has been merged we should drop this and switch over to using that instead. + */ +struct ceph_statx { + uint32_t stx_mask; + uint32_t stx_blksize; + uint32_t stx_nlink; + uint32_t stx_uid; + uint32_t stx_gid; + uint16_t stx_mode; + uint64_t stx_ino; + uint64_t stx_size; + uint64_t stx_blocks; + dev_t stx_dev; + dev_t stx_rdev; + struct timespec stx_atime; + struct timespec stx_ctime; + struct timespec stx_mtime; + struct timespec stx_btime; + uint64_t stx_version; +}; + +#define CEPH_STATX_MODE 0x00000001U /* Want/got stx_mode */ +#define CEPH_STATX_NLINK 0x00000002U /* Want/got stx_nlink */ +#define CEPH_STATX_UID 0x00000004U /* Want/got stx_uid */ +#define CEPH_STATX_GID 0x00000008U /* Want/got stx_gid */ +#define CEPH_STATX_RDEV 0x00000010U /* Want/got stx_rdev */ +#define CEPH_STATX_ATIME 0x00000020U /* Want/got stx_atime */ +#define CEPH_STATX_MTIME 0x00000040U /* Want/got stx_mtime */ +#define CEPH_STATX_CTIME 0x00000080U /* Want/got stx_ctime */ +#define CEPH_STATX_INO 0x00000100U /* Want/got stx_ino */ +#define CEPH_STATX_SIZE 0x00000200U /* Want/got stx_size */ +#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_ALL_STATS 0x00001fffU /* All supported stats */ + +/* + * Compatibility macros until these defines make their way into glibc + */ +#ifndef AT_NO_ATTR_SYNC +#define AT_NO_ATTR_SYNC 0x4000 /* Don't sync attributes with the server */ +#endif + +/* + * The statx interfaces only allow these flags. In order to allow us to add + * others in the future, we disallow setting any that aren't recognized. + */ +#define CEPH_REQ_FLAG_MASK (AT_SYMLINK_NOFOLLOW|AT_NO_ATTR_SYNC) + +#ifdef __cplusplus +} +#endif + +#endif /* CEPH_STATX_H */ + diff --git a/src/include/cephfs/ceph_statx.h b/src/include/cephfs/ceph_statx.h deleted file mode 100644 index f27fa295131..00000000000 --- a/src/include/cephfs/ceph_statx.h +++ /dev/null @@ -1,83 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab -/* - * scalable distributed file system - * - * Copyright (C) Jeff Layton - * - * Heavily borrowed from David Howells' draft statx patchset. - * - * This is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License version 2.1, as published by the Free Software - * Foundation. See file COPYING. - * - */ - -#ifndef CEPH_CEPH_STATX_H -#define CEPH_CEPH_STATX_H -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Since the xstat patches are still a work in progress, we borrow its data - * structures and #defines to implement ceph_getattrx. Once the xstat stuff - * has been merged we should drop this and switch over to using that instead. - */ -struct ceph_statx { - uint32_t stx_mask; - uint32_t stx_blksize; - uint32_t stx_nlink; - uint32_t stx_uid; - uint32_t stx_gid; - uint16_t stx_mode; - uint64_t stx_ino; - uint64_t stx_size; - uint64_t stx_blocks; - dev_t stx_dev; - dev_t stx_rdev; - struct timespec stx_atime; - struct timespec stx_ctime; - struct timespec stx_mtime; - struct timespec stx_btime; - uint64_t stx_version; -}; - -#define CEPH_STATX_MODE 0x00000001U /* Want/got stx_mode */ -#define CEPH_STATX_NLINK 0x00000002U /* Want/got stx_nlink */ -#define CEPH_STATX_UID 0x00000004U /* Want/got stx_uid */ -#define CEPH_STATX_GID 0x00000008U /* Want/got stx_gid */ -#define CEPH_STATX_RDEV 0x00000010U /* Want/got stx_rdev */ -#define CEPH_STATX_ATIME 0x00000020U /* Want/got stx_atime */ -#define CEPH_STATX_MTIME 0x00000040U /* Want/got stx_mtime */ -#define CEPH_STATX_CTIME 0x00000080U /* Want/got stx_ctime */ -#define CEPH_STATX_INO 0x00000100U /* Want/got stx_ino */ -#define CEPH_STATX_SIZE 0x00000200U /* Want/got stx_size */ -#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_ALL_STATS 0x00001fffU /* All supported stats */ - -/* - * Compatibility macros until these defines make their way into glibc - */ -#ifndef AT_NO_ATTR_SYNC -#define AT_NO_ATTR_SYNC 0x4000 /* Don't sync attributes with the server */ -#endif - -/* - * The statx interfaces only allow these flags. In order to allow us to add - * others in the future, we disallow setting any that aren't recognized. - */ -#define CEPH_REQ_FLAG_MASK (AT_SYMLINK_NOFOLLOW|AT_NO_ATTR_SYNC) - -#ifdef __cplusplus -} -#endif - -#endif /* CEPH_STATX_H */ - diff --git a/src/include/cephfs/libcephfs.h b/src/include/cephfs/libcephfs.h index 974b5990731..7ed86893f4d 100755 --- a/src/include/cephfs/libcephfs.h +++ b/src/include/cephfs/libcephfs.h @@ -27,7 +27,7 @@ #include #include -#include "ceph_statx.h" +#include "ceph_ll_client.h" #ifdef __cplusplus extern "C" { diff --git a/src/pybind/cephfs/cephfs.pyx b/src/pybind/cephfs/cephfs.pyx index 7051e14e419..b6dee255091 100644 --- a/src/pybind/cephfs/cephfs.pyx +++ b/src/pybind/cephfs/cephfs.pyx @@ -106,7 +106,7 @@ cdef extern from "sys/time.h": long tv_sec long tv_usec -cdef extern from "cephfs/ceph_statx.h": +cdef extern from "cephfs/ceph_ll_client.h": cdef struct statx "ceph_statx": uint32_t stx_mask uint32_t stx_blksize