8
#include <glusterfs/api/glfs.h>
9
#include <glusterfs/api/glfs-handles.h>
12
#define O_PATH 010000000
15
#define VALIDATE_AND_GOTO_LABEL_ON_ERROR(func, ret, label) \
18
fprintf(stderr, "%s : returned error %d (%s)\n", func, ret, \
25
main(int argc, char *argv[])
28
int flags = O_RDWR | O_SYNC;
30
glfs_fd_t *fd1 = NULL;
31
glfs_fd_t *fd2 = NULL;
34
char *hostname = NULL;
35
const char *dirname = "dir_tmp";
36
const char *filename = "file_tmp";
38
"An opinion should be the result of thought, "
39
"not a substitute for it.";
42
fprintf(stderr, "Invalid argument\n");
50
fs = glfs_new(volname);
52
VALIDATE_AND_GOTO_LABEL_ON_ERROR("glfs_new", ret, out);
54
ret = glfs_set_volfile_server(fs, "tcp", hostname, 24007);
55
VALIDATE_AND_GOTO_LABEL_ON_ERROR("glfs_set_volfile_server", ret, out);
57
ret = glfs_set_logging(fs, logfile, 8);
58
VALIDATE_AND_GOTO_LABEL_ON_ERROR("glfs_set_logging", ret, out);
61
VALIDATE_AND_GOTO_LABEL_ON_ERROR("glfs_init", ret, out);
63
fd1 = glfs_creat(fs, filename, O_CREAT, 0644);
66
VALIDATE_AND_GOTO_LABEL_ON_ERROR("glfs_creat", ret, out);
70
fd1 = glfs_open(fs, filename, O_PATH);
73
VALIDATE_AND_GOTO_LABEL_ON_ERROR("glfs_open(O_PATH)", ret, out);
76
ret = glfs_unlink(fs, filename);
78
VALIDATE_AND_GOTO_LABEL_ON_ERROR("glfs_unlink()", ret, out);
82
ret = glfs_fstat(fd1, &stat);
84
VALIDATE_AND_GOTO_LABEL_ON_ERROR("glfs_fstat()", ret, out);
94
fprintf(stderr, "glfs_fini(fs) returned %d\n", ret);