summaryrefslogtreecommitdiff
path: root/third_party/gpfs
diff options
context:
space:
mode:
authorChristof Schmitt <cs@samba.org>2020-10-02 13:07:37 -0700
committerChristof Schmitt <cs@samba.org>2020-10-05 20:06:04 +0000
commit5cfc9271e4ec67c4ec2ec67d3989b8a96b6d621f (patch)
tree860be9dfce4ddd7daa11b59abf1218ed44c932fe /third_party/gpfs
parent83ab59d929a6319c18341cb69d5084b563fb59bb (diff)
downloadsamba-5cfc9271e4ec67c4ec2ec67d3989b8a96b6d621f.tar.gz
third_party: Update gpfs.h to 5.0.5.3 version
4.2.3 went out of support, so update the header file to the oldest currently supported GPFS version. Going forward, this will allow usage of newer API calls. Signed-off-by: Christof Schmitt <cs@samba.org> Reviewed-by: Volker Lendecke <vl@samba.org> Autobuild-User(master): Christof Schmitt <cs@samba.org> Autobuild-Date(master): Mon Oct 5 20:06:04 UTC 2020 on sn-devel-184
Diffstat (limited to 'third_party/gpfs')
-rw-r--r--third_party/gpfs/gpfs.h79
1 files changed, 63 insertions, 16 deletions
diff --git a/third_party/gpfs/gpfs.h b/third_party/gpfs/gpfs.h
index acafe12c2e7..0ebfa958653 100644
--- a/third_party/gpfs/gpfs.h
+++ b/third_party/gpfs/gpfs.h
@@ -28,7 +28,7 @@
/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF */
/* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
/* */
-/* @(#)42 1.1.12.3 src/avs/fs/mmfs/ts/util/gpfs.h, mmfs, avs_rttn423, rttn423s001a 4/10/17 10:46:33 */
+/* @(#)42 1.1.15.1 src/avs/fs/mmfs/ts/util/gpfs.h, mmfs, avs_rtac505, rtac5052017d.b 4/7/20 08:36:44 */
/*
* Library calls for GPFS interfaces
*/
@@ -44,7 +44,7 @@
end of this header. */
/* #define GPFS_64BIT_INODES 1 */
-#define NFS_IP_SIZE 32
+#define NFS_IP_SIZE 46
#ifdef __cplusplus
extern "C" {
@@ -334,6 +334,11 @@ gpfs_getacl(const char *pathname,
int flags,
void *acl);
+int GPFS_API
+gpfs_getacl_fd(gpfs_file_t fileDesc,
+ int flags,
+ void *acl);
+
/* NAME: gpfs_putacl()
*
@@ -355,6 +360,11 @@ gpfs_putacl(const char *pathname,
int flags,
void *acl);
+int GPFS_API
+gpfs_putacl_fd(gpfs_file_t fileDesc,
+ int flags,
+ void *acl);
+
/* NAME: gpfs_prealloc()
*
@@ -919,6 +929,8 @@ typedef struct gpfs_direntx64
#define GPFS_DEFLAG_IJUNCTION 0x0002 /* DirEnt is a inode space junction */
#define GPFS_DEFLAG_ORPHAN 0x0004 /* DirEnt is an orphan (pcache) */
#define GPFS_DEFLAG_CLONE 0x0008 /* DirEnt is a clone child */
+#define GPFS_DEFLAG_OBJECT 0x0010 /* DirEnt is for an AFM Object */
+#define GPFS_DEFLAG_OBJECT_DIR 0x0020 /* DirEnt is for an AFM Object directory */
/* Define a version number for the iattr data to allow future changes
in this structure. Careful callers should also use the ia_reclen field
@@ -1033,11 +1045,11 @@ typedef struct gpfs_iattr64
#define GPFS_IAFLAG_APPENDONLY 0x00400000 /* AppendOnly only */
#define GPFS_IAFLAG_DELETED 0x00800000 /* inode has been deleted */
-#ifdef ZIP
#define GPFS_IAFLAG_ILLCOMPRESSED 0x01000000 /* may not be properly compressed */
-#endif
#define GPFS_IAFLAG_FPOILLPLACED 0x02000000 /* may not be properly placed per
FPO attributes (bgf, wad, wadfg) */
+#define GPFS_IAFLAG_OBJECT 0x04000000 /* Object directory entry */
+#define GPFS_IAFLAG_OBJECT_DIR 0x08000000 /* Object directory */
/* Define flags for window's attributes */
#define GPFS_IWINFLAG_ARCHIVE 0x0001 /* Archive */
@@ -1117,9 +1129,8 @@ typedef struct gpfs_fssnap_id
#define GPFS_ATTRFLAG_INCL_ENCR 0x0040 /* Include encryption attributes */
#define GPFS_ATTRFLAG_SKIP_CLONE 0x0080 /* Skip clone attributes */
#define GPFS_ATTRFLAG_MODIFY_CLONEPARENT 0x0100 /* Allow modification on clone parent */
-#ifdef ZIP
#define GPFS_ATTRFLAG_NO_COMPRESSED 0x0200 /* exclude "compressed" attribute */
-#endif
+#define GPFS_ATTRFLAG_SKIP_COMPRESSION 0x0400 /* Skip compression attribute */
/* Define structure used by gpfs_statfspool */
typedef struct gpfs_statfspool_s
@@ -2447,6 +2458,35 @@ gpfs_iputattrsx(gpfs_ifile_t *ifile,
void *buffer,
const char *pathName);
+/* NAME: gpfs_igetcompressionlib()
+ *
+ * FUNCTION: Retrieves the selected compression library from ifile which has been
+ * open by gpfs_iopen().
+ *
+ * Input: ifile: pointer to gpfs_ifile_t from gpfs_iopen
+ * buffer: pointer to buffer for key and returned extended
+ * attribute value
+ * bufferSize: size of buffer, should be enough to save attribute value
+ * attrSize: ptr to key length as input and ptr to the returned
+ * size of attributes as putput.
+ *
+ * Returns: 0 Successful
+ * -1 Failure and errno is set
+ *
+ * Errno: ENOSYS function not available
+ * EPERM caller must have superuser priviledges
+ * ESTALE cached fs information was invalid
+ * ENOSPC buffer too small to return all attributes
+ * *attrSize will be set to the size necessary
+ * EINVAL buffer is NULL
+ * EIO selected compression library is corrupted or not available
+ * GPFS_E_INVAL_IFILE bad ifile parameters
+ */
+int GPFS_API
+gpfs_igetcompressionlib(gpfs_ifile_t *ifile,
+ void *buffer,
+ int bufferSize,
+ int *attrSize);
/* NAME: gpfs_igetfilesetname()
*
@@ -3183,8 +3223,14 @@ typedef enum
GPFS_LWE_EVENT_FILEOPEN_WRITE = 15, /* Open with Writing privileges - EVENT 'OPEN_WRITE' - deprecated, use 'OPEN' */
GPFS_LWE_EVENT_FILEPOOL_CHANGE = 16, /* Open with Writing privileges - EVENT 'OPEN_WRITE' - deprecated, use 'OPEN' */
-
- GPFS_LWE_EVENT_MAX = 17, /* 1 greater than any of the above */
+ GPFS_LWE_EVENT_XATTR_CHANGE = 17, /* EAs of file are changed */
+ GPFS_LWE_EVENT_ACL_CHANGE = 18, /* ACLs (both GPFS ACLs and Posix permissions) of a file are changed */
+ GPFS_LWE_EVENT_CREATE = 19, /* create, including mkdir, symlink, special file */
+ GPFS_LWE_EVENT_GPFSATTR_CHANGE = 20, /* ts-specific attributes of file are changed */
+ GPFS_LWE_EVENT_FILETRUNCATE = 21, /* "File Truncate Event" 'TRUNCATE' */
+ GPFS_LWE_EVENT_FS_UNMOUNT_ALL = 22, /* FS is not externally mounted anywhere */
+
+ GPFS_LWE_EVENT_MAX = 23, /* 1 greater than any of the above */
} gpfs_lwe_eventtype_t;
@@ -3223,6 +3269,7 @@ typedef enum
#define LWE_DATA_BYTES_WRITTEN 0x00100000 /* "bytesWritten" */
#define LWE_DATA_CLUSTER_NAME 0x00200000 /* "clusterName" */
#define LWE_DATA_NODE_NAME 0x00400000 /* "nodeName" */
+#define LWE_DATA_LWESEND 0x00800000 /* "lweSend" */
/*
* Define light weight events
@@ -3292,10 +3339,12 @@ static const gpfs_lwe_token_t _gpfs_lwe_invalid_token = { 0, 1 };
/* LWE data events are generated from user access
* to a LWE managed region. */
-#define GPFS_LWE_DATAEVENT_NONE (0x0)
-#define GPFS_LWE_DATAEVENT_READ (0x1)
-#define GPFS_LWE_DATAEVENT_WRITE (0x2)
-#define GPFS_LWE_DATAEVENT_TRUNCATE (0x4)
+#define GPFS_LWE_DATAEVENT_NONE (0x0)
+#define GPFS_LWE_DATAEVENT_READ (0x1)
+#define GPFS_LWE_DATAEVENT_WRITE (0x2)
+#define GPFS_LWE_DATAEVENT_TRUNCATE (0x4)
+#define GPFS_LWE_ATTRCHANGEEVENT_IMMUTABILITY (0x8)
+#define GPFS_LWE_ATTRCHANGEEVENT_APPENDONLY (0x10)
@@ -3753,8 +3802,6 @@ gpfs_lwe_putattrs(gpfs_lwe_sessid_t sid,
void *buffer,
const char *pathName);
-
-
const char* GPFS_API
gpfs_get_fspathname_from_fsname(const char* fsname_or_path);
/* Check that fsname_or_path refers to a GPFS file system and find the path to its root
@@ -3801,7 +3848,7 @@ int GPFS_API
gpfs_qos_get(
const char *fspathname,
int *classnumP,
- char classname[18], /* "gold", "silver", or .. "1" or "2" .. */
+ char classname[GPFS_MAXNAMLEN+1], /* "gold", "silver", or .. "1" or "2" .. */
int id, /* process id or pgrp or userid */
int which, /* process, pgrp or user */
double* qshareP); /* return the share, percentage or when negative IOP limit */
@@ -3825,7 +3872,7 @@ int GPFS_API
gpfs_qos_lkupVal(
const char *fspathname,
int val,
- char classname[18],
+ char classname[GPFS_MAXNAMLEN+1],
double* qshareP);
int GPFS_API