From 606398a3a6da349877eb1d6f585e3f58778624b2 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Thu, 8 Aug 2019 15:22:31 -0700 Subject: 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 Reviewed-by: Ralph Boehme --- examples/VFS/skel_opaque.c | 11 +++++++++++ examples/VFS/skel_transparent.c | 14 ++++++++++++++ 2 files changed, 25 insertions(+) (limited to 'examples') 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, -- cgit v1.2.1