summaryrefslogtreecommitdiff
path: root/source3/modules/vfs_default.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/modules/vfs_default.c')
-rw-r--r--source3/modules/vfs_default.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/source3/modules/vfs_default.c b/source3/modules/vfs_default.c
index 9a55456b0c..c95c68fe0f 100644
--- a/source3/modules/vfs_default.c
+++ b/source3/modules/vfs_default.c
@@ -524,13 +524,12 @@ static int vfswrap_rename(vfs_handle_struct *handle,
const struct smb_filename *smb_fname_src,
const struct smb_filename *smb_fname_dst)
{
- int result;
+ int result = -1;
START_PROFILE(syscall_rename);
if (smb_fname_src->stream_name || smb_fname_dst->stream_name) {
errno = ENOENT;
- result = -1;
goto out;
}
@@ -651,12 +650,20 @@ static uint64_t vfswrap_get_alloc_size(vfs_handle_struct *handle,
return result;
}
-static int vfswrap_unlink(vfs_handle_struct *handle, const char *path)
+static int vfswrap_unlink(vfs_handle_struct *handle,
+ const struct smb_filename *smb_fname)
{
- int result;
+ int result = -1;
START_PROFILE(syscall_unlink);
- result = unlink(path);
+
+ if (smb_fname->stream_name) {
+ errno = ENOENT;
+ goto out;
+ }
+ result = unlink(smb_fname->base_name);
+
+ out:
END_PROFILE(syscall_unlink);
return result;
}