diff options
Diffstat (limited to 'source3/modules/vfs_tsmsm.c')
-rw-r--r-- | source3/modules/vfs_tsmsm.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/source3/modules/vfs_tsmsm.c b/source3/modules/vfs_tsmsm.c index 533fde2003..6383891913 100644 --- a/source3/modules/vfs_tsmsm.c +++ b/source3/modules/vfs_tsmsm.c @@ -349,10 +349,13 @@ static ssize_t tsmsm_pwrite(struct vfs_handle_struct *handle, struct files_struc } static int tsmsm_set_offline(struct vfs_handle_struct *handle, - const char *path) { + const struct smb_filename *fname) +{ struct tsmsm_struct *tsmd = (struct tsmsm_struct *) handle->data; int result = 0; char *command; + NTSTATUS status; + char *path; if (tsmd->hsmscript == NULL) { /* no script enabled */ @@ -360,6 +363,12 @@ static int tsmsm_set_offline(struct vfs_handle_struct *handle, return 0; } + status = get_full_smb_filename(talloc_tos(), fname, &path); + if (!NT_STATUS_IS_OK(status)) { + errno = map_errno_from_nt_status(status); + return false; + } + /* Now, call the script */ command = talloc_asprintf(tsmd, "%s offline \"%s\"", tsmd->hsmscript, path); if(!command) { |