IOR
Data Structures | Macros | Functions | Variables
aiori-CEPHFS.c File Reference
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <cephfs/libcephfs.h>
#include "ior.h"
#include "iordef.h"
#include "aiori.h"
#include "utilities.h"
Include dependency graph for aiori-CEPHFS.c:

Go to the source code of this file.

Data Structures

struct  cephfs_options
 

Macros

#define CEPH_O_RDONLY   00000000
 
#define CEPH_O_WRONLY   00000001
 
#define CEPH_O_RDWR   00000002
 
#define CEPH_O_CREAT   00000100
 
#define CEPH_O_EXCL   00000200
 
#define CEPH_O_TRUNC   00001000
 
#define CEPH_O_LAZY   00020000
 
#define CEPH_O_DIRECTORY   00200000
 
#define CEPH_O_NOFOLLOW   00400000
 
#define CEPHFS_ERR(__err_str, __ret)
 

Functions

static void CEPHFS_Init ()
 
static void CEPHFS_Final ()
 
void CEPHFS_xfer_hints (aiori_xfer_hint_t *params)
 
static aiori_fd_tCEPHFS_Create (char *path, int flags, aiori_mod_opt_t *options)
 
static aiori_fd_tCEPHFS_Open (char *path, int flags, aiori_mod_opt_t *options)
 
static IOR_offset_t CEPHFS_Xfer (int access, aiori_fd_t *file, IOR_size_t *buffer, IOR_offset_t length, IOR_offset_t offset, aiori_mod_opt_t *options)
 
static void CEPHFS_Close (aiori_fd_t *, aiori_mod_opt_t *)
 
static void CEPHFS_Delete (char *path, aiori_mod_opt_t *)
 
static void CEPHFS_Fsync (aiori_fd_t *, aiori_mod_opt_t *)
 
static IOR_offset_t CEPHFS_GetFileSize (aiori_mod_opt_t *, char *)
 
static int CEPHFS_StatFS (const char *path, ior_aiori_statfs_t *stat, aiori_mod_opt_t *options)
 
static int CEPHFS_MkDir (const char *path, mode_t mode, aiori_mod_opt_t *options)
 
static int CEPHFS_RmDir (const char *path, aiori_mod_opt_t *options)
 
static int CEPHFS_Access (const char *path, int mode, aiori_mod_opt_t *options)
 
static int CEPHFS_Stat (const char *path, struct stat *buf, aiori_mod_opt_t *options)
 
static void CEPHFS_Sync (aiori_mod_opt_t *)
 
static option_helpCEPHFS_options ()
 
static const char * pfix (const char *path)
 

Variables

static struct cephfs_options o
 
static option_help options []
 
static struct ceph_mount_info * cmount
 
static aiori_xfer_hint_thints = NULL
 
ior_aiori_t cephfs_aiori
 

Macro Definition Documentation

◆ CEPH_O_CREAT

#define CEPH_O_CREAT   00000100

Definition at line 35 of file aiori-CEPHFS.c.

Referenced by CEPHFS_Open().

◆ CEPH_O_DIRECTORY

#define CEPH_O_DIRECTORY   00200000

Definition at line 39 of file aiori-CEPHFS.c.

◆ CEPH_O_EXCL

#define CEPH_O_EXCL   00000200

Definition at line 36 of file aiori-CEPHFS.c.

Referenced by CEPHFS_Open().

◆ CEPH_O_LAZY

#define CEPH_O_LAZY   00020000

Definition at line 38 of file aiori-CEPHFS.c.

◆ CEPH_O_NOFOLLOW

#define CEPH_O_NOFOLLOW   00400000

Definition at line 40 of file aiori-CEPHFS.c.

◆ CEPH_O_RDONLY

#define CEPH_O_RDONLY   00000000

Definition at line 32 of file aiori-CEPHFS.c.

Referenced by CEPHFS_Open().

◆ CEPH_O_RDWR

#define CEPH_O_RDWR   00000002

Definition at line 34 of file aiori-CEPHFS.c.

Referenced by CEPHFS_Open().

◆ CEPH_O_TRUNC

#define CEPH_O_TRUNC   00001000

Definition at line 37 of file aiori-CEPHFS.c.

Referenced by CEPHFS_Open().

◆ CEPH_O_WRONLY

#define CEPH_O_WRONLY   00000001

Definition at line 33 of file aiori-CEPHFS.c.

Referenced by CEPHFS_Open().

◆ CEPHFS_ERR

#define CEPHFS_ERR (   __err_str,
  __ret 
)
Value:
do { \
errno = -__ret; \
ERR(__err_str); \
} while(0)

Definition at line 116 of file aiori-CEPHFS.c.

Referenced by CEPHFS_Close(), CEPHFS_Delete(), CEPHFS_Final(), CEPHFS_Fsync(), CEPHFS_GetFileSize(), CEPHFS_Init(), CEPHFS_Open(), CEPHFS_StatFS(), CEPHFS_Sync(), and CEPHFS_Xfer().

Function Documentation

◆ CEPHFS_Access()

static int CEPHFS_Access ( const char *  path,
int  mode,
aiori_mod_opt_t options 
)
static

Definition at line 392 of file aiori-CEPHFS.c.

References cmount, and pfix().

Here is the call graph for this function:

◆ CEPHFS_Close()

static void CEPHFS_Close ( aiori_fd_t file,
aiori_mod_opt_t options 
)
static

Definition at line 304 of file aiori-CEPHFS.c.

References CEPHFS_ERR, and cmount.

◆ CEPHFS_Create()

static aiori_fd_t * CEPHFS_Create ( char *  path,
int  flags,
aiori_mod_opt_t options 
)
static

Definition at line 209 of file aiori-CEPHFS.c.

References CEPHFS_Open(), and IOR_CREAT.

Here is the call graph for this function:

◆ CEPHFS_Delete()

static void CEPHFS_Delete ( char *  path,
aiori_mod_opt_t options 
)
static

Definition at line 315 of file aiori-CEPHFS.c.

References CEPHFS_ERR, cmount, and pfix().

Here is the call graph for this function:

◆ CEPHFS_Final()

static void CEPHFS_Final ( )
static

Definition at line 195 of file aiori-CEPHFS.c.

References CEPHFS_ERR, cmount, and NULL.

◆ CEPHFS_Fsync()

static void CEPHFS_Fsync ( aiori_fd_t file,
aiori_mod_opt_t options 
)
static

Definition at line 295 of file aiori-CEPHFS.c.

References CEPHFS_ERR, and cmount.

Referenced by CEPHFS_Xfer().

Here is the caller graph for this function:

◆ CEPHFS_GetFileSize()

static IOR_offset_t CEPHFS_GetFileSize ( aiori_mod_opt_t options,
char *  path 
)
static

Definition at line 324 of file aiori-CEPHFS.c.

References CEPHFS_ERR, cmount, aiori_xfer_hint_t::filePerProc, MPI_CHECK, pfix(), rank, testComm, TRUE, and WARN.

Here is the call graph for this function:

◆ CEPHFS_Init()

static void CEPHFS_Init ( )
static

◆ CEPHFS_MkDir()

static int CEPHFS_MkDir ( const char *  path,
mode_t  mode,
aiori_mod_opt_t options 
)
static

Definition at line 382 of file aiori-CEPHFS.c.

References cmount, and pfix().

Here is the call graph for this function:

◆ CEPHFS_Open()

static aiori_fd_t * CEPHFS_Open ( char *  path,
int  flags,
aiori_mod_opt_t options 
)
static

Definition at line 214 of file aiori-CEPHFS.c.

References CEPH_O_CREAT, CEPH_O_EXCL, CEPH_O_RDONLY, CEPH_O_RDWR, CEPH_O_TRUNC, CEPH_O_WRONLY, CEPHFS_ERR, cmount, IOR_APPEND, IOR_CREAT, IOR_DIRECT, IOR_EXCL, IOR_RDONLY, IOR_RDWR, IOR_TRUNC, IOR_WRONLY, cephfs_options::olazy, pfix(), TRUE, and WARN.

Referenced by CEPHFS_Create().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CEPHFS_options()

static option_help * CEPHFS_options ( )
static

Definition at line 139 of file aiori-CEPHFS.c.

References options.

◆ CEPHFS_RmDir()

static int CEPHFS_RmDir ( const char *  path,
aiori_mod_opt_t options 
)
static

Definition at line 387 of file aiori-CEPHFS.c.

References cmount, and pfix().

Here is the call graph for this function:

◆ CEPHFS_Stat()

static int CEPHFS_Stat ( const char *  path,
struct stat *  buf,
aiori_mod_opt_t options 
)
static

Definition at line 398 of file aiori-CEPHFS.c.

References cmount, and pfix().

Here is the call graph for this function:

◆ CEPHFS_StatFS()

static int CEPHFS_StatFS ( const char *  path,
ior_aiori_statfs_t stat,
aiori_mod_opt_t options 
)
static

◆ CEPHFS_Sync()

static void CEPHFS_Sync ( aiori_mod_opt_t options)
static

Definition at line 403 of file aiori-CEPHFS.c.

References CEPHFS_ERR, and cmount.

◆ CEPHFS_Xfer()

static IOR_offset_t CEPHFS_Xfer ( int  access,
aiori_fd_t file,
IOR_size_t buffer,
IOR_offset_t  length,
IOR_offset_t  offset,
aiori_mod_opt_t options 
)
static

Definition at line 262 of file aiori-CEPHFS.c.

References CEPHFS_ERR, CEPHFS_Fsync(), cmount, aiori_xfer_hint_t::fsyncPerWrite, TRUE, and WRITE.

Here is the call graph for this function:

◆ CEPHFS_xfer_hints()

void CEPHFS_xfer_hints ( aiori_xfer_hint_t params)

Definition at line 123 of file aiori-CEPHFS.c.

◆ pfix()

static const char* pfix ( const char *  path)
static

Definition at line 128 of file aiori-CEPHFS.c.

References cephfs_options::prefix.

Referenced by CEPHFS_Access(), CEPHFS_Delete(), CEPHFS_GetFileSize(), CEPHFS_MkDir(), CEPHFS_Open(), CEPHFS_RmDir(), CEPHFS_Stat(), and CEPHFS_StatFS().

Here is the caller graph for this function:

Variable Documentation

◆ cephfs_aiori

ior_aiori_t cephfs_aiori
Initial value:
= {
.name = "CEPHFS",
.name_legacy = NULL,
.initialize = CEPHFS_Init,
.finalize = CEPHFS_Final,
.create = CEPHFS_Create,
.open = CEPHFS_Open,
.xfer = CEPHFS_Xfer,
.close = CEPHFS_Close,
.delete = CEPHFS_Delete,
.get_options = CEPHFS_options,
.get_version = aiori_get_version,
.xfer_hints = CEPHFS_xfer_hints,
.fsync = CEPHFS_Fsync,
.get_file_size = CEPHFS_GetFileSize,
.statfs = CEPHFS_StatFS,
.mkdir = CEPHFS_MkDir,
.rmdir = CEPHFS_RmDir,
.access = CEPHFS_Access,
.stat = CEPHFS_Stat,
.sync = CEPHFS_Sync,
}
static int CEPHFS_Stat(const char *path, struct stat *buf, aiori_mod_opt_t *options)
Definition: aiori-CEPHFS.c:398
static void CEPHFS_Fsync(aiori_fd_t *, aiori_mod_opt_t *)
Definition: aiori-CEPHFS.c:295
static aiori_fd_t * CEPHFS_Open(char *path, int flags, aiori_mod_opt_t *options)
Definition: aiori-CEPHFS.c:214
static IOR_offset_t CEPHFS_GetFileSize(aiori_mod_opt_t *, char *)
Definition: aiori-CEPHFS.c:324
static int CEPHFS_Access(const char *path, int mode, aiori_mod_opt_t *options)
Definition: aiori-CEPHFS.c:392
static int CEPHFS_StatFS(const char *path, ior_aiori_statfs_t *stat, aiori_mod_opt_t *options)
Definition: aiori-CEPHFS.c:359
static int CEPHFS_MkDir(const char *path, mode_t mode, aiori_mod_opt_t *options)
Definition: aiori-CEPHFS.c:382
static void CEPHFS_Init()
Definition: aiori-CEPHFS.c:143
static void CEPHFS_Close(aiori_fd_t *, aiori_mod_opt_t *)
Definition: aiori-CEPHFS.c:304
static aiori_fd_t * CEPHFS_Create(char *path, int flags, aiori_mod_opt_t *options)
Definition: aiori-CEPHFS.c:209
char * aiori_get_version()
Definition: aiori.c:235
static void CEPHFS_Final()
Definition: aiori-CEPHFS.c:195
static IOR_offset_t CEPHFS_Xfer(int access, aiori_fd_t *file, IOR_size_t *buffer, IOR_offset_t length, IOR_offset_t offset, aiori_mod_opt_t *options)
Definition: aiori-CEPHFS.c:262
void CEPHFS_xfer_hints(aiori_xfer_hint_t *params)
Definition: aiori-CEPHFS.c:123
static void CEPHFS_Delete(char *path, aiori_mod_opt_t *)
Definition: aiori-CEPHFS.c:315
static int CEPHFS_RmDir(const char *path, aiori_mod_opt_t *options)
Definition: aiori-CEPHFS.c:387
static void CEPHFS_Sync(aiori_mod_opt_t *)
Definition: aiori-CEPHFS.c:403
static option_help * CEPHFS_options()
Definition: aiori-CEPHFS.c:139
#define NULL
Definition: iordef.h:84

Definition at line 93 of file aiori-CEPHFS.c.

◆ cmount

struct ceph_mount_info* cmount
static

◆ hints

aiori_xfer_hint_t* hints = NULL
static

Definition at line 90 of file aiori-CEPHFS.c.

◆ o

struct cephfs_options o
static
Initial value:
= {
.user = NULL,
.conf = NULL,
.prefix = NULL,
.remote_prefix = NULL,
.olazy = 0,
}
#define NULL
Definition: iordef.h:84

Definition at line 51 of file aiori-CEPHFS.c.

◆ options

option_help options[]
static
Initial value:
= {
{0, "cephfs.user", "Username for the ceph cluster", OPTION_OPTIONAL_ARGUMENT, 's', & o.user},
{0, "cephfs.conf", "Config file for the ceph cluster", OPTION_OPTIONAL_ARGUMENT, 's', & o.conf},
{0, "cephfs.prefix", "Mount prefix", OPTION_OPTIONAL_ARGUMENT, 's', & o.prefix},
{0, "cephfs.remote_prefix", "Remote mount prefix", OPTION_OPTIONAL_ARGUMENT, 's', & o.remote_prefix},
{0, "cephfs.olazy", "Enable Lazy I/O", OPTION_FLAG, 'd', & o.olazy},
}
#define LAST_OPTION
Definition: option.h:39
char * remote_prefix
Definition: aiori-CEPHFS.c:47
static struct cephfs_options o
Definition: aiori-CEPHFS.c:51

Definition at line 59 of file aiori-CEPHFS.c.

Referenced by CEPHFS_options(), createGlobalOptions(), mdtest_run(), ParseCommandLine(), and S3_xfer_hints().