({ \
int32_t __err = -ENOTCONN; \
if (proxy_link_is_connected(&(_cmount)->link)) { \
- (_req).v0.cmount = (_cmount)->cmount; \
+ (_req).cmount = (_cmount)->cmount; \
__err = CEPH_RUN(_cmount, _op, _req, _ans); \
} \
__err; \
#define PROXY_EMBED_PERMS(_client, _req, _perms) \
do { \
- if (proxy_embed_perms(_client, &_req.v0.userperm, _perms)) { \
- _req.v1.ngroups = _perms->count; \
+ if (proxy_embed_perms(_client, &_req.userperm, _perms)) { \
+ _req.ngroups = _perms->count; \
CEPH_BUFF_ADD(_req, _perms->groups, \
sizeof(gid_t) * _perms->count); \
} else { \
- _req.v1.ngroups = 0; \
+ _req.ngroups = 0; \
} \
} while (false)
return -ENOMEM;
}
- CEPH_STR_ADD(req, v0.path, path);
+ CEPH_STR_ADD(req, path, path);
err = CEPH_PROCESS(cmount, LIBCEPHFSD_OP_CHDIR, req, ans);
if (err >= 0) {
{
CEPH_REQ(ceph_conf_get, req, 1, ans, 1);
- req.v0.size = len;
+ req.size = len;
- CEPH_STR_ADD(req, v0.option, option);
+ CEPH_STR_ADD(req, option, option);
CEPH_BUFF_ADD(ans, buf, len);
return CEPH_PROCESS(cmount, LIBCEPHFSD_OP_CONF_GET, req, ans);
{
CEPH_REQ(ceph_conf_read_file, req, 1, ans, 0);
- CEPH_STR_ADD(req, v0.path, path_list);
+ CEPH_STR_ADD(req, path, path_list);
return CEPH_PROCESS(cmount, LIBCEPHFSD_OP_CONF_READ_FILE, req, ans);
}
{
CEPH_REQ(ceph_conf_set, req, 2, ans, 0);
- CEPH_STR_ADD(req, v0.option, option);
- CEPH_STR_ADD(req, v0.value, value);
+ CEPH_STR_ADD(req, option, option);
+ CEPH_STR_ADD(req, value, value);
return CEPH_PROCESS(cmount, LIBCEPHFSD_OP_CONF_SET, req, ans);
}
}
}
- CEPH_STR_ADD(req, v0.id, id);
+ CEPH_STR_ADD(req, id, id);
err = CEPH_CALL(sd, LIBCEPHFSD_OP_CREATE, req, ans);
if ((err < 0) || ((err = ans.header.result) < 0)) {
goto failed_link;
}
- ceph_mount->cmount = ans.v0.cmount;
+ ceph_mount->cmount = ans.cmount;
*cmount = ceph_mount;
{
CEPH_REQ(ceph_ll_close, req, 0, ans, 0);
- req.v0.fh = ptr_value(filehandle);
+ req.fh = ptr_value(filehandle);
return CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_CLOSE, req, ans);
}
PROTO_VERSION(&cmount->neg, req, PROXY_PROTOCOL_V1);
- req.v0.parent = ptr_value(parent);
- req.v0.mode = mode;
- req.v0.oflags = oflags;
- req.v0.want = want;
- req.v0.flags = lflags;
+ req.parent = ptr_value(parent);
+ req.mode = mode;
+ req.oflags = oflags;
+ req.want = want;
+ req.flags = lflags;
- CEPH_STR_ADD(req, v0.name, name);
+ CEPH_STR_ADD(req, name, name);
PROXY_EMBED_PERMS(cmount, req, perms);
CEPH_BUFF_ADD(ans, stx, sizeof(*stx));
err = CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_CREATE, req, ans);
if (err >= 0) {
- *outp = value_ptr(ans.v0.inode);
- *fhp = value_ptr(ans.v0.fh);
+ *outp = value_ptr(ans.inode);
+ *fhp = value_ptr(ans.fh);
}
return err;
{
CEPH_REQ(ceph_ll_fallocate, req, 0, ans, 0);
- req.v0.fh = ptr_value(fh);
- req.v0.mode = mode;
- req.v0.offset = offset;
- req.v0.length = length;
+ req.fh = ptr_value(fh);
+ req.mode = mode;
+ req.offset = offset;
+ req.length = length;
return CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_FALLOCATE, req, ans);
}
{
CEPH_REQ(ceph_ll_fsync, req, 0, ans, 0);
- req.v0.fh = ptr_value(fh);
- req.v0.dataonly = syncdataonly;
+ req.fh = ptr_value(fh);
+ req.dataonly = syncdataonly;
return CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_FSYNC, req, ans);
}
PROTO_VERSION(&cmount->neg, req, PROXY_PROTOCOL_V1);
- req.v0.inode = ptr_value(in);
- req.v0.want = want;
- req.v0.flags = flags;
+ req.inode = ptr_value(in);
+ req.want = want;
+ req.flags = flags;
PROXY_EMBED_PERMS(cmount, req, perms);
PROTO_VERSION(&cmount->neg, req, PROXY_PROTOCOL_V1);
- req.v0.inode = ptr_value(in);
- req.v0.size = size;
+ req.inode = ptr_value(in);
+ req.size = size;
- CEPH_STR_ADD(req, v0.name, name);
+ CEPH_STR_ADD(req, name, name);
PROXY_EMBED_PERMS(cmount, req, perms);
CEPH_BUFF_ADD(ans, value, size);
PROTO_VERSION(&cmount->neg, req, PROXY_PROTOCOL_V1);
- req.v0.inode = ptr_value(in);
- req.v0.parent = ptr_value(newparent);
+ req.inode = ptr_value(in);
+ req.parent = ptr_value(newparent);
- CEPH_STR_ADD(req, v0.name, name);
+ CEPH_STR_ADD(req, name, name);
PROXY_EMBED_PERMS(cmount, req, perms);
return CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_LINK, req, ans);
PROTO_VERSION(&cmount->neg, req, PROXY_PROTOCOL_V1);
- req.v0.inode = ptr_value(in);
- req.v0.size = buf_size;
+ req.inode = ptr_value(in);
+ req.size = buf_size;
PROXY_EMBED_PERMS(cmount, req, perms);
err = CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_LISTXATTR, req, ans);
if (err >= 0) {
- *list_size = ans.v0.size;
+ *list_size = ans.size;
}
return err;
PROTO_VERSION(&cmount->neg, req, PROXY_PROTOCOL_V1);
- req.v0.parent = ptr_value(parent);
- req.v0.want = want;
- req.v0.flags = flags;
+ req.parent = ptr_value(parent);
+ req.want = want;
+ req.flags = flags;
- CEPH_STR_ADD(req, v0.name, name);
+ CEPH_STR_ADD(req, name, name);
PROXY_EMBED_PERMS(cmount, req, perms);
CEPH_BUFF_ADD(ans, stx, sizeof(*stx));
err = CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_LOOKUP, req, ans);
if (err >= 0) {
- *out = value_ptr(ans.v0.inode);
+ *out = value_ptr(ans.inode);
}
return err;
CEPH_REQ(ceph_ll_lookup_inode, req, 0, ans, 0);
int32_t err;
- req.v0.ino = ino;
+ req.ino = ino;
err = CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_LOOKUP_INODE, req, ans);
if (err >= 0) {
- *inode = value_ptr(ans.v0.inode);
+ *inode = value_ptr(ans.inode);
}
return err;
err = CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_LOOKUP_ROOT, req, ans);
if (err >= 0) {
- *parent = value_ptr(ans.v0.inode);
+ *parent = value_ptr(ans.inode);
}
return err;
CEPH_REQ(ceph_ll_lseek, req, 0, ans, 0);
int32_t err;
- req.v0.fh = ptr_value(filehandle);
- req.v0.offset = offset;
- req.v0.whence = whence;
+ req.fh = ptr_value(filehandle);
+ req.offset = offset;
+ req.whence = whence;
err = CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_LSEEK, req, ans);
if (err >= 0) {
- return ans.v0.offset;
+ return ans.offset;
}
return err;
PROTO_VERSION(&cmount->neg, req, PROXY_PROTOCOL_V1);
- req.v0.parent = ptr_value(parent);
- req.v0.mode = mode;
- req.v0.want = want;
- req.v0.flags = flags;
+ req.parent = ptr_value(parent);
+ req.mode = mode;
+ req.want = want;
+ req.flags = flags;
- CEPH_STR_ADD(req, v0.name, name);
+ CEPH_STR_ADD(req, name, name);
PROXY_EMBED_PERMS(cmount, req, perms);
CEPH_BUFF_ADD(ans, stx, sizeof(*stx));
err = CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_MKDIR, req, ans);
if (err >= 0) {
- *out = value_ptr(ans.v0.inode);
+ *out = value_ptr(ans.inode);
}
return err;
PROTO_VERSION(&cmount->neg, req, PROXY_PROTOCOL_V1);
- req.v0.parent = ptr_value(parent);
- req.v0.mode = mode;
- req.v0.rdev = rdev;
- req.v0.want = want;
- req.v0.flags = flags;
+ req.parent = ptr_value(parent);
+ req.mode = mode;
+ req.rdev = rdev;
+ req.want = want;
+ req.flags = flags;
- CEPH_STR_ADD(req, v0.name, name);
+ CEPH_STR_ADD(req, name, name);
PROXY_EMBED_PERMS(cmount, req, perms);
CEPH_BUFF_ADD(ans, stx, sizeof(*stx));
err = CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_MKNOD, req, ans);
if (err >= 0) {
- *out = value_ptr(ans.v0.inode);
+ *out = value_ptr(ans.inode);
}
return err;
PROTO_VERSION(&cmount->neg, req, PROXY_PROTOCOL_V1);
- req.v0.inode = ptr_value(in);
- req.v0.flags = flags;
+ req.inode = ptr_value(in);
+ req.flags = flags;
PROXY_EMBED_PERMS(cmount, req, perms);
err = CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_OPEN, req, ans);
if (err >= 0) {
- *fh = value_ptr(ans.v0.fh);
+ *fh = value_ptr(ans.fh);
}
return err;
PROTO_VERSION(&cmount->neg, req, PROXY_PROTOCOL_V1);
- req.v0.inode = ptr_value(in);
+ req.inode = ptr_value(in);
PROXY_EMBED_PERMS(cmount, req, perms);
err = CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_OPENDIR, req, ans);
if (err >= 0) {
- *dirpp = value_ptr(ans.v0.dir);
+ *dirpp = value_ptr(ans.dir);
}
return err;
{
CEPH_REQ(ceph_ll_put, req, 0, ans, 0);
- req.v0.inode = ptr_value(in);
+ req.inode = ptr_value(in);
return CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_PUT, req, ans);
}
{
CEPH_REQ(ceph_ll_read, req, 0, ans, 1);
- req.v0.fh = ptr_value(filehandle);
- req.v0.offset = off;
- req.v0.len = len;
+ req.fh = ptr_value(filehandle);
+ req.offset = off;
+ req.len = len;
CEPH_BUFF_ADD(ans, buf, len);
PROTO_VERSION(&cmount->neg, req, PROXY_PROTOCOL_V1);
- req.v0.inode = ptr_value(in);
- req.v0.size = bufsize;
+ req.inode = ptr_value(in);
+ req.size = bufsize;
PROXY_EMBED_PERMS(cmount, req, perms);
{
CEPH_REQ(ceph_ll_releasedir, req, 0, ans, 0);
- req.v0.dir = ptr_value(dir);
+ req.dir = ptr_value(dir);
return CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_RELEASEDIR, req, ans);
}
PROTO_VERSION(&cmount->neg, req, PROXY_PROTOCOL_V1);
- req.v0.inode = ptr_value(in);
+ req.inode = ptr_value(in);
- CEPH_STR_ADD(req, v0.name, name);
+ CEPH_STR_ADD(req, name, name);
PROXY_EMBED_PERMS(cmount, req, perms);
return CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_REMOVEXATTR, req, ans);
PROTO_VERSION(&cmount->neg, req, PROXY_PROTOCOL_V1);
- req.v0.old_parent = ptr_value(parent);
- req.v0.new_parent = ptr_value(newparent);
+ req.old_parent = ptr_value(parent);
+ req.new_parent = ptr_value(newparent);
- CEPH_STR_ADD(req, v0.old_name, name);
- CEPH_STR_ADD(req, v0.new_name, newname);
+ CEPH_STR_ADD(req, old_name, name);
+ CEPH_STR_ADD(req, new_name, newname);
PROXY_EMBED_PERMS(cmount, req, perms);
return CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_RENAME, req, ans);
{
CEPH_REQ(ceph_rewinddir, req, 0, ans, 0);
- req.v0.dir = ptr_value(dirp);
+ req.dir = ptr_value(dirp);
CEPH_PROCESS(cmount, LIBCEPHFSD_OP_REWINDDIR, req, ans);
}
PROTO_VERSION(&cmount->neg, req, PROXY_PROTOCOL_V1);
- req.v0.parent = ptr_value(in);
+ req.parent = ptr_value(in);
- CEPH_STR_ADD(req, v0.name, name);
+ CEPH_STR_ADD(req, name, name);
PROXY_EMBED_PERMS(cmount, req, perms);
return CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_RMDIR, req, ans);
PROTO_VERSION(&cmount->neg, req, PROXY_PROTOCOL_V1);
- req.v0.inode = ptr_value(in);
- req.v0.mask = mask;
+ req.inode = ptr_value(in);
+ req.mask = mask;
CEPH_BUFF_ADD(req, stx, sizeof(*stx));
PROXY_EMBED_PERMS(cmount, req, perms);
PROTO_VERSION(&cmount->neg, req, PROXY_PROTOCOL_V1);
- req.v0.inode = ptr_value(in);
- req.v0.size = size;
- req.v0.flags = flags;
+ req.inode = ptr_value(in);
+ req.size = size;
+ req.flags = flags;
- CEPH_STR_ADD(req, v0.name, name);
+ CEPH_STR_ADD(req, name, name);
CEPH_BUFF_ADD(req, value, size);
PROXY_EMBED_PERMS(cmount, req, perms);
{
CEPH_REQ(ceph_ll_statfs, req, 0, ans, 1);
- req.v0.inode = ptr_value(in);
+ req.inode = ptr_value(in);
CEPH_BUFF_ADD(ans, stbuf, sizeof(*stbuf));
PROTO_VERSION(&cmount->neg, req, PROXY_PROTOCOL_V1);
- req.v0.parent = ptr_value(in);
- req.v0.want = want;
- req.v0.flags = flags;
+ req.parent = ptr_value(in);
+ req.want = want;
+ req.flags = flags;
- CEPH_STR_ADD(req, v0.name, name);
- CEPH_STR_ADD(req, v0.target, value);
+ CEPH_STR_ADD(req, name, name);
+ CEPH_STR_ADD(req, target, value);
PROXY_EMBED_PERMS(cmount, req, perms);
CEPH_BUFF_ADD(req, stx, sizeof(*stx));
err = CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_SYMLINK, req, ans);
if (err >= 0) {
- *out = value_ptr(ans.v0.inode);
+ *out = value_ptr(ans.inode);
}
return err;
PROTO_VERSION(&cmount->neg, req, PROXY_PROTOCOL_V1);
- req.v0.parent = ptr_value(in);
+ req.parent = ptr_value(in);
- CEPH_STR_ADD(req, v0.name, name);
+ CEPH_STR_ADD(req, name, name);
PROXY_EMBED_PERMS(cmount, req, perms);
return CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_UNLINK, req, ans);
PROTO_VERSION(&cmount->neg, req, PROXY_PROTOCOL_V1);
- req.v0.want = want;
- req.v0.flags = flags;
+ req.want = want;
+ req.flags = flags;
- CEPH_STR_ADD(req, v0.path, name);
+ CEPH_STR_ADD(req, path, name);
PROXY_EMBED_PERMS(cmount, req, perms);
CEPH_BUFF_ADD(ans, stx, sizeof(*stx));
err = CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_WALK, req, ans);
if (err >= 0) {
- *i = value_ptr(ans.v0.inode);
+ *i = value_ptr(ans.inode);
}
return err;
{
CEPH_REQ(ceph_ll_write, req, 1, ans, 0);
- req.v0.fh = ptr_value(filehandle);
- req.v0.offset = off;
- req.v0.len = len;
+ req.fh = ptr_value(filehandle);
+ req.offset = off;
+ req.len = len;
CEPH_BUFF_ADD(req, data, len);
return CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_WRITE, req, ans);
{
CEPH_REQ(ceph_mount, req, 1, ans, 0);
- CEPH_STR_ADD(req, v0.root, root);
+ CEPH_STR_ADD(req, root, root);
return CEPH_PROCESS(cmount, LIBCEPHFSD_OP_MOUNT, req, ans);
}
CEPH_REQ(ceph_readdir, req, 0, ans, 1);
- req.v0.dir = ptr_value(dirp);
+ req.dir = ptr_value(dirp);
CEPH_BUFF_ADD(ans, de, sizeof(struct dirent));
if (err < 0) {
return err;
}
- if (ans.v0.eod) {
+ if (ans.eod) {
return 0;
}
{
CEPH_REQ(ceph_select_filesystem, req, 1, ans, 0);
- CEPH_STR_ADD(req, v0.fs, fs_name);
+ CEPH_STR_ADD(req, fs, fs_name);
return CEPH_PROCESS(cmount, LIBCEPHFSD_OP_SELECT_FILESYSTEM, req, ans);
}
if ((global_cmount.neg.v1.enabled & PROXY_FEAT_EMBEDDED_PERMS) != 0) {
proxy_free(perms);
} else {
- req.v0.userperm = ptr_value(perms);
+ req.userperm = ptr_value(perms);
CEPH_RUN(&global_cmount, LIBCEPHFSD_OP_USERPERM_DESTROY, req,
ans);
return perms;
}
- req.v0.uid = uid;
- req.v0.gid = gid;
- req.v0.groups = ngids;
+ req.uid = uid;
+ req.gid = gid;
+ req.groups = ngids;
CEPH_BUFF_ADD(req, gidlist, sizeof(gid_t) * ngids);
err = CEPH_RUN(&global_cmount, LIBCEPHFSD_OP_USERPERM_NEW, req, ans);
if (err >= 0) {
- return value_ptr(ans.v0.userperm);
+ return value_ptr(ans.userperm);
}
errno = -err;
return "Unknown";
}
- cached_major = ans.v0.major;
- cached_minor = ans.v0.minor;
- cached_patch = ans.v0.patch;
+ cached_major = ans.major;
+ cached_minor = ans.minor;
+ cached_patch = ans.patch;
}
*major = cached_major;
return NULL;
}
- return value_ptr(ans.v0.userperm);
+ return value_ptr(ans.userperm);
}
__public int64_t ceph_ll_nonblocking_readv_writev(
return -EOPNOTSUPP;
}
- req.v0.info = ptr_checksum(&cmount->async.random, io_info);
- req.v0.fh = (uintptr_t)io_info->fh;
- req.v0.off = io_info->off;
- req.v0.size = 0;
- req.v0.write = io_info->write;
- req.v0.fsync = io_info->fsync;
- req.v0.syncdataonly = io_info->syncdataonly;
+ req.info = ptr_checksum(&cmount->async.random, io_info);
+ req.fh = (uintptr_t)io_info->fh;
+ req.off = io_info->off;
+ req.size = 0;
+ req.write = io_info->write;
+ req.fsync = io_info->fsync;
+ req.syncdataonly = io_info->syncdataonly;
for (i = 0; i < io_info->iovcnt; i++) {
if (io_info->write) {
CEPH_BUFF_ADD(req, io_info->iov[i].iov_base,
io_info->iov[i].iov_len);
}
- req.v0.size += io_info->iov[i].iov_len;
+ req.size += io_info->iov[i].iov_len;
}
err = CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_NONBLOCKING_RW, req, ans);
return err;
}
- return ans.v0.res;
+ return ans.res;
}