return status;
}
-static int um_link(vfs_handle_struct *handle,
- const struct smb_filename *old_smb_fname,
- const struct smb_filename *new_smb_fname)
-{
- int status;
- struct smb_filename *old_client_fname = NULL;
- struct smb_filename *new_client_fname = NULL;
-
- DEBUG(10, ("Entering um_link\n"));
- if (!is_in_media_files(old_smb_fname->base_name) &&
- !is_in_media_files(new_smb_fname->base_name)) {
- return SMB_VFS_NEXT_LINK(handle, old_smb_fname, new_smb_fname);
- }
-
- status = alloc_get_client_smb_fname(handle, talloc_tos(),
- old_smb_fname, &old_client_fname);
- if (status != 0) {
- goto err;
- }
- status = alloc_get_client_smb_fname(handle, talloc_tos(),
- new_smb_fname, &new_client_fname);
- if (status != 0) {
- goto err;
- }
-
- status = SMB_VFS_NEXT_LINK(handle, old_client_fname, new_client_fname);
-
-err:
- TALLOC_FREE(old_client_fname);
- TALLOC_FREE(new_client_fname);
- return status;
-}
-
static int um_linkat(vfs_handle_struct *handle,
files_struct *srcfsp,
const struct smb_filename *old_smb_fname,
.ntimes_fn = um_ntimes,
.symlink_fn = um_symlink,
.readlink_fn = um_readlink,
- .link_fn = um_link,
.linkat_fn = um_linkat,
.mknod_fn = um_mknod,
.realpath_fn = um_realpath,