WRAP_RETURN(result);
}
+static int cephwrap_renameat(struct vfs_handle_struct *handle,
+ files_struct *srcfsp,
+ const struct smb_filename *smb_fname_src,
+ files_struct *dstfsp,
+ const struct smb_filename *smb_fname_dst)
+{
+ int result = -1;
+ DBG_DEBUG("[CEPH] cephwrap_renameat\n");
+ if (smb_fname_src->stream_name || smb_fname_dst->stream_name) {
+ errno = ENOENT;
+ return result;
+ }
+
+ result = ceph_rename(handle->data, smb_fname_src->base_name, smb_fname_dst->base_name);
+ WRAP_RETURN(result);
+}
+
/*
* Fake up an async ceph fsync by calling the synchronous API.
*/
.sendfile_fn = cephwrap_sendfile,
.recvfile_fn = cephwrap_recvfile,
.rename_fn = cephwrap_rename,
+ .renameat_fn = cephwrap_renameat,
.fsync_send_fn = cephwrap_fsync_send,
.fsync_recv_fn = cephwrap_fsync_recv,
.stat_fn = cephwrap_stat,