summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2019-08-08 15:22:31 -0700
committerJeremy Allison <jra@samba.org>2019-08-16 19:52:32 +0000
commit606398a3a6da349877eb1d6f585e3f58778624b2 (patch)
tree11b1e92570bd0b38b460123710d9bfc8c4e11a1e /examples
parent75f98a19537c4d0791108ebfea82f3f9d4606cb3 (diff)
downloadsamba-606398a3a6da349877eb1d6f585e3f58778624b2.tar.gz
s3: VFS: Add SMB_VFS_RENAMEAT().
Currently identical to SMB_VFS_RENAME() - uses AT_FDCWD for both src and dst directories. Next, move add to all VFS modules that implement rename and eventually remove rename. Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Ralph Boehme <slow@samba.org>
Diffstat (limited to 'examples')
-rw-r--r--examples/VFS/skel_opaque.c11
-rw-r--r--examples/VFS/skel_transparent.c14
2 files changed, 25 insertions, 0 deletions
diff --git a/examples/VFS/skel_opaque.c b/examples/VFS/skel_opaque.c
index 55b576302a1..fa0de6680d6 100644
--- a/examples/VFS/skel_opaque.c
+++ b/examples/VFS/skel_opaque.c
@@ -298,6 +298,16 @@ static int skel_rename(vfs_handle_struct *handle,
return -1;
}
+static int skel_renameat(vfs_handle_struct *handle,
+ files_struct *srcfsp,
+ const struct smb_filename *smb_fname_src,
+ files_struct *dstfsp,
+ const struct smb_filename *smb_fname_dst)
+{
+ errno = ENOSYS;
+ return -1;
+}
+
static struct tevent_req *skel_fsync_send(struct vfs_handle_struct *handle,
TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
@@ -1061,6 +1071,7 @@ static struct vfs_fn_pointers skel_opaque_fns = {
.sendfile_fn = skel_sendfile,
.recvfile_fn = skel_recvfile,
.rename_fn = skel_rename,
+ .renameat_fn = skel_renameat,
.fsync_send_fn = skel_fsync_send,
.fsync_recv_fn = skel_fsync_recv,
.stat_fn = skel_stat,
diff --git a/examples/VFS/skel_transparent.c b/examples/VFS/skel_transparent.c
index eae2e9d5027..82ba5525d42 100644
--- a/examples/VFS/skel_transparent.c
+++ b/examples/VFS/skel_transparent.c
@@ -376,6 +376,19 @@ static int skel_rename(vfs_handle_struct *handle,
return SMB_VFS_NEXT_RENAME(handle, smb_fname_src, smb_fname_dst);
}
+static int skel_renameat(vfs_handle_struct *handle,
+ files_struct *srcfsp,
+ const struct smb_filename *smb_fname_src,
+ files_struct *dstfsp,
+ const struct smb_filename *smb_fname_dst)
+{
+ return SMB_VFS_NEXT_RENAMEAT(handle,
+ srcfsp,
+ smb_fname_src,
+ dstfsp,
+ smb_fname_dst);
+}
+
struct skel_fsync_state {
int ret;
struct vfs_aio_state vfs_aio_state;
@@ -1323,6 +1336,7 @@ static struct vfs_fn_pointers skel_transparent_fns = {
.sendfile_fn = skel_sendfile,
.recvfile_fn = skel_recvfile,
.rename_fn = skel_rename,
+ .renameat_fn = skel_renameat,
.fsync_send_fn = skel_fsync_send,
.fsync_recv_fn = skel_fsync_recv,
.stat_fn = skel_stat,