return SMB_VFS_NEXT_SYMLINK(handle, link_contents, new_smb_fname);
}
-static int snapper_gmt_link(vfs_handle_struct *handle,
- const struct smb_filename *old_smb_fname,
- const struct smb_filename *new_smb_fname)
-{
- time_t timestamp_old = 0;
- time_t timestamp_new = 0;
-
- if (!snapper_gmt_strip_snapshot(talloc_tos(),
- handle,
- old_smb_fname->base_name,
- ×tamp_old,
- NULL)) {
- return -1;
- }
- if (!snapper_gmt_strip_snapshot(talloc_tos(),
- handle,
- new_smb_fname->base_name,
- ×tamp_new,
- NULL)) {
- return -1;
- }
- if ((timestamp_old != 0) || (timestamp_new != 0)) {
- errno = EROFS;
- return -1;
- }
- return SMB_VFS_NEXT_LINK(handle, old_smb_fname, new_smb_fname);
-}
-
static int snapper_gmt_linkat(vfs_handle_struct *handle,
files_struct *srcfsp,
const struct smb_filename *old_smb_fname,
.disk_free_fn = snapper_gmt_disk_free,
.get_quota_fn = snapper_gmt_get_quota,
.renameat_fn = snapper_gmt_renameat,
- .link_fn = snapper_gmt_link,
.linkat_fn = snapper_gmt_linkat,
.symlink_fn = snapper_gmt_symlink,
.stat_fn = snapper_gmt_stat,