All users now use SMB_VFS_UNLINKAT(..., AT_REMOVEDIR).
Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Autobuild-User(master): Ralph Böhme <slow@samba.org>
Autobuild-Date(master): Thu Oct 10 07:26:43 UTC 2019 on sn-devel-184
return -1;
}
-static int skel_rmdir(vfs_handle_struct *handle,
- const struct smb_filename *smb_fname)
-{
- errno = ENOSYS;
- return -1;
-}
-
static int skel_closedir(vfs_handle_struct *handle, DIR *dir)
{
errno = ENOSYS;
.telldir_fn = skel_telldir,
.rewind_dir_fn = skel_rewind_dir,
.mkdirat_fn = skel_mkdirat,
- .rmdir_fn = skel_rmdir,
.closedir_fn = skel_closedir,
/* File operations */
mode);
}
-static int skel_rmdir(vfs_handle_struct *handle,
- const struct smb_filename *smb_fname)
-{
- return SMB_VFS_NEXT_RMDIR(handle, smb_fname);
-}
-
static int skel_closedir(vfs_handle_struct *handle, DIR *dir)
{
return SMB_VFS_NEXT_CLOSEDIR(handle, dir);
.telldir_fn = skel_telldir,
.rewind_dir_fn = skel_rewind_dir,
.mkdirat_fn = skel_mkdirat,
- .rmdir_fn = skel_rmdir,
.closedir_fn = skel_closedir,
/* File operations */
SMBPROFILE_STATS_BASIC(syscall_telldir) \
SMBPROFILE_STATS_BASIC(syscall_rewinddir) \
SMBPROFILE_STATS_BASIC(syscall_mkdirat) \
- SMBPROFILE_STATS_BASIC(syscall_rmdir) \
SMBPROFILE_STATS_BASIC(syscall_closedir) \
SMBPROFILE_STATS_BASIC(syscall_open) \
SMBPROFILE_STATS_BASIC(syscall_createfile) \
/* Version 42 - Move [un]become_user*() -> [un]become_user_without_service*() */
/* Version 42 - Move SMB_VFS_UNLINK -> SMB_VFS_UNLINKAT. */
/* Version 42 - Add SMB_VFS_FCNTL */
+/* Version 42 - Remove SMB_VFS_RMDIR.
+ Use SMB_VFS_UNLINKAT(.., AT_REMOVEDIR) instead. */
#define SMB_VFS_INTERFACE_VERSION 42
struct files_struct *dirfsp,
const struct smb_filename *smb_fname,
mode_t mode);
- int (*rmdir_fn)(struct vfs_handle_struct *handle,
- const struct smb_filename *smb_fname);
int (*closedir_fn)(struct vfs_handle_struct *handle, DIR *dir);
/* File operations */
struct files_struct *dirfsp,
const struct smb_filename *smb_fname,
mode_t mode);
-int smb_vfs_call_rmdir(struct vfs_handle_struct *handle,
- const struct smb_filename *smb_fname);
int smb_vfs_call_closedir(struct vfs_handle_struct *handle,
DIR *dir);
int smb_vfs_call_open(struct vfs_handle_struct *handle,
struct files_struct *dirfsp,
const struct smb_filename *smb_fname,
mode_t mode);
-int vfs_not_implemented_rmdir(vfs_handle_struct *handle,
- const struct smb_filename *smb_fname);
int vfs_not_implemented_closedir(vfs_handle_struct *handle, DIR *dir);
int vfs_not_implemented_open(vfs_handle_struct *handle,
struct smb_filename *smb_fname,
#define SMB_VFS_NEXT_MKDIRAT(handle, dirfsp, smb_fname, mode) \
smb_vfs_call_mkdirat((handle)->next,(dirfsp), (smb_fname), (mode))
-#define SMB_VFS_RMDIR(conn, smb_fname) \
- smb_vfs_call_rmdir((conn)->vfs_handles, (smb_fname))
-#define SMB_VFS_NEXT_RMDIR(handle, smb_fname) \
- smb_vfs_call_rmdir((handle)->next, (smb_fname))
-
#define SMB_VFS_CLOSEDIR(conn, dir) \
smb_vfs_call_closedir((conn)->vfs_handles, dir)
#define SMB_VFS_NEXT_CLOSEDIR(handle, dir) \
return result;
}
-static int vfswrap_rmdir(vfs_handle_struct *handle,
- const struct smb_filename *smb_fname)
-{
- int result;
-
- START_PROFILE(syscall_rmdir);
- result = rmdir(smb_fname->base_name);
- END_PROFILE(syscall_rmdir);
- return result;
-}
-
static int vfswrap_closedir(vfs_handle_struct *handle, DIR *dirp)
{
int result;
.telldir_fn = vfswrap_telldir,
.rewind_dir_fn = vfswrap_rewinddir,
.mkdirat_fn = vfswrap_mkdirat,
- .rmdir_fn = vfswrap_rmdir,
.closedir_fn = vfswrap_closedir,
/* File operations */
return -1;
}
-int vfs_not_implemented_rmdir(vfs_handle_struct *handle,
- const struct smb_filename *smb_fname)
-{
- errno = ENOSYS;
- return -1;
-}
-
int vfs_not_implemented_closedir(vfs_handle_struct *handle, DIR *dir)
{
errno = ENOSYS;
.telldir_fn = vfs_not_implemented_telldir,
.rewind_dir_fn = vfs_not_implemented_rewind_dir,
.mkdirat_fn = vfs_not_implemented_mkdirat,
- .rmdir_fn = vfs_not_implemented_rmdir,
.closedir_fn = vfs_not_implemented_closedir,
/* File operations */
mode);
}
-int smb_vfs_call_rmdir(struct vfs_handle_struct *handle,
- const struct smb_filename *smb_fname)
-{
- VFS_FIND(rmdir);
- return handle->fns->rmdir_fn(handle, smb_fname);
-}
-
int smb_vfs_call_closedir(struct vfs_handle_struct *handle,
DIR *dir)
{